如果不在监视模式下,为什么Jest测试会随机失败?

时间:2019-02-05 20:47:50

标签: jestjs windows-subsystem-for-linux

我有一个奇怪的问题。如果我跑

jest --watch

通过npm,一切正常。

如果我打开覆盖范围,则会出现随机错误,大多数情况是这样

ENOENT: no such file or directory, lstat

更多详细信息

可靠的命令在package.json中定义为:

"test": "jest --watch --config jest-watch.json",

不可靠的命令是

"test-all": "jest"

我们使用一个jest.config.js文件:

module.exports = {
  verbose: false,
  testURL: 'http://localhost/',
  coverageReporters: ['json', 'lcov', 'html'],
  collectCoverageFrom: [
    '<rootDir>/src/**/*.{js,jsx}',
    '!**/node_modules/**',
    '!**/vendor/**',
    '!**/coverage/**',
    '!<rootDir>/lambda.js',
    '!<rootDir>/server.js'
  ],
  collectCoverage: true,
  coverageThreshold: {
    global: {
      statements: 40,
      branches: 17,
      functions: 18,
      lines: 41
    }
  },
  setupFilesAfterEnv: ['<rootDir>/setupTests.js'],
  testPathIgnorePatterns: ['<rootDir>/lambda.js', '<rootDir>/server.js']
};

和`jest-watch.config'文件是:

{
  "collectCoverage": false,
  "setupFilesAfterEnv": ["<rootDir>/setupTests.js"]
}

这在我使用玩笑的每个项目中都在发生,包括节点和反应应用程序。但是,我有大约10多名队友,有些在Windows上,有些在Mac上,没有其他人遇到这个问题。我相信我是唯一使用WSL(Linux的Windows子系统)的人。

我正在运行Windows 101803。我将Ubuntu用作Linux发行版。

关于可能是什么原因的任何想法?

1 个答案:

答案 0 :(得分:0)

我没有测试,但是您的配置看起来不错,我有一个问题:

1-您在项目中使用jest Global还是local? 2-在项目文件夹“ npm run test”中运行时发生了什么? 3-您是否尝试在项目文件夹中运行“ jest --watch”?

注意:由于您使用的是WSL,因此应检查bash配置,shell和$ PATH环境变量。