jestjs - 如果不在手表模式下,为什么 Jest 测试会随机失败?
问题描述
我有一个奇怪的问题。如果我跑
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"]
}
这发生在我使用 jest 的每个项目中,包括节点和反应应用程序。但是,我有大约 10 多个队友,一些在 Windows 上,一些在 Mac 上,没有其他人遇到这个问题。我相信我是唯一一个使用 WSL(Linux 的 Windows 子系统)的人。
我正在运行 Windows 10 1803。我使用 Ubuntu 作为我的 Linux 发行版。
关于可能导致这种情况的任何想法?
解决方案
我没有测试它,但你的配置看起来不错,我有一些问题:
1-您在项目中使用 jest Global 还是 local?2-当你在项目文件夹“npm run test”中运行时发生了什么?3-您是否尝试在项目文件夹中运行“jest --watch”?
注意:因为您使用的是 WSL,所以应该检查 bash 配置、shell 和 $PATH 环境变量。
推荐阅读
- python - 如何让python在windows CMD中读取和输入内容
- reactjs - 导航栏组件不显示 react-bootstrap CSS
- json - 用于从非结构化 JSON 文件中提取所有特定键值的 Bash 脚本
- android - 使用谷歌 API(或其他)查找距离历史
- c++ - 为什么 C++ 中 if 语句中 long int 范围内的所有可能整数都是“真”,但 0 不是?
- dart - ExpansionPanelList 不展开也不折叠 ExpansionPanel
- android - 如何在 xml 中显示 ChipGroup 中的占位符芯片?
- ruby-on-rails - Rails 在同一个查询对象上进行多项 AR 操作(最小、最大、平均 ..)
- bash - 我将如何获取和过滤终端中打印的信息
- sql - 多个正则表达式不使用级别