React+Jest项目:npm run build测试通过后无法触发构建的解决方法
React项目构建前自动执行Jest测试并触发构建的配置方案
问题根源
react-scripts test 默认处于监听模式,测试完成后会持续监听文件变化,不会主动退出进程。这就导致&&后面的react-scripts build命令永远不会被执行,即便所有测试都通过了。
修复方案
修改package.json中的scripts配置,给测试命令添加--watchAll=false参数,让Jest执行完所有测试后直接退出:
"scripts": { "start": "react-scripts start", "build": "react-scripts test --watchAll=false && react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" },
额外说明
--watchAll=false会强制Jest一次性运行全部测试用例,执行完成后立即终止进程,只有当所有测试通过时,才会继续执行后续的构建命令。- 如果你需要在测试时生成覆盖率报告,可以额外添加
--coverage参数,该参数不会阻止进程正常退出。
内容的提问来源于stack exchange,提问作者Amauri Santos
相关产品推荐
相关产品推荐

