以非交互模式运行CRA Jest

时间:2016-09-27 11:56:08

标签: reactjs redux jestjs create-react-app

更新:我的用例主要是在CI上运行测试,但是覆盖默认的CRA Jest参数是我一般想知道的。

我正在使用Jest附带的Create React App配置运行测试。它总是启动到交互模式:

 › Press a to run all tests.
 › Press o to only run tests related to changed files.
 › Press p to filter by a filename regex pattern.
 › Press q to quit watch mode.
 › Press Enter to trigger a test run.

但我不想让它等待我的意见。我希望它运行一次然后终止。我尝试使用--bail--no-watchman开关,但仍以交互模式启动。

如果我全局安装jest,并在项目的根目录中运行它,它会执行一次并完成(就像我想要的那样)。但是当我运行npm test运行react-scripts test时,即使我没有通过--watch,它也会进入监视模式。

更新:我还在CRA上提交了一个问题。

3 个答案:

答案 0 :(得分:45)

CRA会查找CI环境变量,如果它存在,则它不会以监视模式运行。

CI=true npm test应该做你想要的事情

请参阅User Guide -> Running Tests -> On your own environment

<强>更新 对于非ci,例如在本地运行测试,从react-scripts@2.1.4您可以传递--no-watch标志:

npm test --no-watch

答案 1 :(得分:7)

在您的package.json脚本中:

"test": "react-scripts test --watchAll=false"

npm test -- --watchAll=false

yarn test --watchAll=false

注意:该标志曾经被称为--no-watch

答案 2 :(得分:0)

非交互式解决方案:

npm test a --watchAll=false

yarn test a --watchAll=false