小编典典

在非交互模式下运行CRA Jest

reactjs

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


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

 › 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 testreact-scripts test即使我没有过去,它也会进入监视模式--watch

更新:我也对CRA提出了问题。


阅读 296

收藏
2020-07-22

共1个答案

小编典典

您应该使用Jests --watchAll=false标志

例如:

npm test -- --watchAll=false

注意: 这是针对react-scripts> 3.00

对于旧版本:

  • 反应脚本 >= 2.1.4 < 3.00

对于非CI,例如在本地运行测试,您可以从`传递一个–no-watch`标志:

npm test --no-watch

  • 反应脚本 <= 2.1.3

CRA寻找一个CI环境变量(如果存在),它不在监视模式下运行。

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

请参阅用户指南->运行测试->在您自己的环境中

2020-07-22