运行 react-scripts test 时出现"Error: spawn git ENOENT"错误。

4

我有一个项目,是使用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'文件夹,然后从该副本运行测试,则所有测试都可以正常运行。

1个回答

3
我最终弄清楚了导致这个问题的原因。我的本地设置中有些东西在Jest监视器启动时会导致错误(仍不清楚是什么)。根据create-react-app文档:
默认情况下,当您运行npm test时,Jest只会运行与上次提交以来更改的文件相关的测试。这是一种优化,旨在使您的测试运行快速,而不管您有多少测试。但是它假定您不经常提交不能通过测试的代码。 使用set CI=true&&npm test将测试运行得像在CI环境中一样,可以绕过git功能,从而可以运行我的测试。此处有更多信息 jest项目中还存在一个未解决的bug:https://github.com/facebook/jest/issues/3214

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接