我有一个使用create-react-app
创建的项目。当我第一次创建项目时,测试运行良好。我决定在没有运行它们一段时间后运行测试(我仍然没有写任何所以生成的测试类就是我所有的),现在我收到以下错误:
Determining test suites to run...Error: spawn git ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
at onErrorNT (internal/child_process.js:344:16)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
Git肯定在路上,我可以从命令行运行git --version
并按预期输出。如果我在cygwin或windows命令行中运行,我会得到同样的错误。
我的package.json看起来像:
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"immutable": "^3.8.1",
"react": "^15.5.4",
"react-dom": "^15.5.4"
},
"devDependencies": {
"react-scripts": "0.9.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
编辑:经过一些游戏,我发现我的测试只在项目位于git存储库时才会失败。如果我拿一个项目的副本,没有'.git'文件夹,那么从副本运行测试它们都运行良好。
答案 0 :(得分:3)
我最终弄明白造成这种情况的原因。当git作为Jest观察者的一部分启动时,我的本地设置有些问题导致错误(仍然不清楚是什么)。来自create-react-app文档:
默认情况下,当您运行npm test时,Jest将仅运行与上次提交后更改的文件相关的测试。这是一项优化,旨在使您的测试快速运行,无论您拥有多少测试。但是,它假定您不经常提交未通过测试的代码。
运行测试就好像它们在set CI=true&&npm test
的CI环境中运行一样绕过了git功能,我可以运行我的测试。 More information here
开玩笑项目中还有一个漏洞:https://github.com/facebook/jest/issues/3214