You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 05:47:34