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

如何用Jest运行不同文件夹下的所有测试文件?

用单个Jest脚本运行所有测试(含src、e2e、unit)

你可以通过以下几种方式实现用一个脚本运行所有测试:

方法1:直接串联现有命令

在package.json的scripts里新增一个命令,把三个测试命令串行执行:

"scripts": {
  "test": "jest",
  "test:e2e": "jest --config ./test/e2e/jest-e2e.json",
  "test:unit": "jest --config ./test/unit/jest-unit.json",
  "test:all": "npm run test && npm run test:e2e && npm run test:unit"
}

执行npm run test:all就会依次运行src、e2e、unit的测试,前面的命令执行成功才会继续后面的。如果想忽略失败强制执行所有测试,可以把&&换成:

  • Linux/macOS用;
  • Windows用&

方法2:用npm-run-all实现跨平台兼容

如果需要跨平台(Windows、Linux、macOS)都能正常运行,推荐使用npm-run-all工具:

  1. 先安装依赖:
npm install --save-dev npm-run-all
  1. 在package.json里新增脚本:
"scripts": {
  // ... 原有脚本
  "test:all": "run-s test test:e2e test:unit"
}
  • run-s是串行执行命令,能按顺序输出测试结果,方便排查问题
  • 如果你想更快执行,也可以用run-p并行执行,但多个测试的输出会混在一起

方法3:修改根Jest配置统一管理(注意配置冲突)

如果e2e和unit的Jest配置没有特殊差异,可以修改根目录的jest.config.js(如果没有就新建),让它包含所有测试文件路径:

module.exports = {
  testMatch: [
    "**/src/**/*.spec.js",
    "**/test/e2e/**/*.spec.js",
    "**/test/unit/**/*.spec.js"
  ]
};

这样直接运行npm test就能执行所有测试,但要注意:如果e2e或unit有独立的配置(比如超时时间、测试环境不同),这种方法会用根配置覆盖子配置,导致测试异常,这种情况更推荐前两种方法。

内容的提问来源于stack exchange,提问作者Ubaid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:35:28