更新:我的用例主要是在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开关,但它仍以交互模式启动。
--bail
--no-watchman
如果我全局安装jest,并在项目的根目录中运行它,它将执行一次并完成(就如我所愿)。但是当我跑步时npm test,react-scripts test即使我没有过去,它也会进入监视模式--watch。
jest
npm test
react-scripts test
--watch
更新:我也对CRA提出了问题。
您应该使用Jests --watchAll=false标志。
--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
CI=true npm test 应该做你想要的
CI=true npm test
请参阅用户指南->运行测试->在您自己的环境中