Node.js &引用;错误:spawn git enoint“;运行react脚本测试时
我有一个使用Node.js &引用;错误:spawn git enoint“;运行react脚本测试时,node.js,git,reactjs,npm,react-scripts,Node.js,Git,Reactjs,Npm,React Scripts,我有一个使用createreact应用程序创建的项目。当我第一次创建项目时,测试运行良好。在一段时间没有运行测试之后,我决定运行这些测试(我仍然没有编写任何测试,所以生成的测试类就是我的全部),现在我得到了以下错误: Determining test suites to run...Error: spawn git ENOENT at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32) at
createreact应用程序创建的项目。当我第一次创建项目时,测试运行良好。在一段时间没有运行测试之后,我决定运行这些测试(我仍然没有编写任何测试,所以生成的测试类就是我的全部),现在我得到了以下错误:
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命令行中运行,则会出现相同的错误
My 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”文件夹的情况下获取项目的副本,然后从副本中运行测试,它们都可以正常运行。我最终找到了导致此问题的原因。当git作为Jest watcher的一部分启动时,我的本地设置导致了一个错误(仍然不清楚是什么)。从创建应用程序文档:
默认情况下,当您运行npm测试时,Jest将只运行与自上次提交以来更改的文件相关的测试。这是一种优化,旨在使您的测试无论有多少测试都能快速运行。但是,它假设您不经常提交未通过测试的代码
运行测试时,就像它们在CI环境中运行一样,使用set CI=true&&npm test
绕过git功能,我可以运行测试
jest项目中还有一个开放的bug: