如何避免Jest默认以watch模式运行?实现单次测试执行
问题:Jest默认进入watch模式,如何设置单次运行测试?
执行npm run test时Jest默认进入watch模式,但希望它单次运行测试,当前package.json的scripts配置如下:
"scripts": { "start": "node src/server.js", "watch": "nodemon src/server.js", "test": "jest ", "test-watch": "jest --watch", "cluster": "pm2 start src/server.js -i max" }
解决方案:
- 修改package.json中的test脚本:直接在
jest命令后添加--watchAll=false参数,强制关闭watch模式。修改后的scripts配置如下:
"scripts": { "start": "node src/server.js", "watch": "nodemon src/server.js", "test": "jest --watchAll=false", "test-watch": "jest --watch", "cluster": "pm2 start src/server.js -i max" }
执行npm run test后,Jest会单次运行所有测试,执行完毕自动退出。
- 检查Jest配置文件:如果项目中有
jest.config.js(或.jestrc等其他格式配置文件),查看是否设置了watch: true或watchAll: true,将其改为false即可。示例配置:
module.exports = { // 其他配置项 watchAll: false, };
- 利用CI环境变量:Jest会自动识别CI环境,在此环境下默认不会启动watch模式。可以临时通过环境变量执行命令:
CI=true npm run test
若需长期生效,也可将环境变量写入package.json的test脚本:
"test": "CI=true jest"
内容的提问来源于stack exchange,提问作者MUHAMMAD Asim
相关产品推荐
相关产品推荐

