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

在NX框架中使用Jest时如何忽略指定测试文件执行?

NX执行Jest单元测试时跳过集成测试文件的解决方案

你之前直接追加参数不生效的原因是:NX的命令行参数默认不会直接透传给下层的Jest执行器,直接在nx affected命令后加Jest专属参数会被NX忽略,不会触发过滤逻辑。

以下是三种可行的实现方式,按推荐优先级排列:

  • 方案1:拆分测试target(最推荐,灵活度最高)
    在对应项目的project.json中拆分出独立的单元测试、集成测试target,从配置层面隔离两类测试的执行逻辑:
// project.json配置示例
{
  "targets": {
    // 单元测试专属target,自动过滤集成测试文件
    "test:unit": {
      "executor": "@nrwl/jest:jest",
      "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
      "options": {
        "jestConfig": "<你的项目jest配置文件路径>/jest.config.ts",
        "passWithNoTests": true,
        "testPathIgnorePatterns": [".*\\.integration\\.spec\\.ts$"]
      }
    },
    // 集成测试专属target,仅执行集成测试
    "test:integration": {
      "executor": "@nrwl/jest:jest",
      "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
      "options": {
        "jestConfig": "<你的项目jest配置文件路径>/jest.config.ts",
        "passWithNoTests": true,
        "testPathPattern": [".*\\.integration\\.spec\\.ts$"]
      }
    }
  }
}

配置完成后,执行单元测试命令为nx affected --target=test:unit,执行集成测试命令为nx affected --target=test:integration,两类测试完全解耦,便于后续CI流程分别配置执行策略。

  • 方案2:修改Jest配置文件全局过滤
    如果不需要单独执行集成测试,可以直接在Jest配置中全局过滤集成测试文件,打开项目根目录或对应项目下的jest.config.ts(或jest.config.js),添加如下配置:
// jest.config.ts配置示例
export default {
  // 保留原有其他配置不变
  testPathIgnorePatterns: [
    "node_modules",
    ".*\\.integration\\.spec\\.ts$"
  ]
};

配置完成后直接运行原命令nx affected --target=test即可自动跳过所有集成测试文件。

  • 方案3:命令行透传Jest参数(适合临时执行场景)
    如果只是临时需要跳过集成测试,不需要修改配置,可在命令中添加--分隔符,将后续参数透传给Jest执行器,正确命令如下:
nx affected --target=test -- --testPathIgnorePatterns='.*\.integration\.spec\.ts$'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 11:57:02