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

如何在Jest中分别运行Lint检查与常规测试?

解决方案:分别运行Jest配置中的常规测试与Lint测试

我之前也碰到过一模一样的问题——把常规测试和jest-runner-eslint的Lint测试放在Jest配置的projects数组里后,想单独跑其中一组却找不到正确的方式,用--projects参数还触发了monorepo模式报错。后来研究了Jest的文档和社区方案,找到了两个靠谱的解决办法:

方法1:用--selectProjects指定要运行的项目(推荐)

Jest 24及以上版本支持--selectProjects标志,它专门用来筛选你在配置projects数组里定义的项目,完全不会触发monorepo的逻辑。具体步骤如下:

  1. 给每个子项目配置添加displayName
    把你的两个测试配置拆成单独的文件(或者在主配置的projects数组里直接定义对象),每个配置加上唯一的displayName:

    比如主配置jest.config.js:

    module.exports = {
      projects: [
        {
          displayName: 'unit-tests',
          // 常规测试的配置:testMatch、moduleFileExtensions等
          testMatch: ['<rootDir>/src/**/*.test.js'],
          moduleFileExtensions: ['js', 'json']
        },
        {
          displayName: 'lint',
          runner: 'jest-runner-eslint',
          testMatch: ['<rootDir>/src/**/*.js']
          // 其他ESLint runner相关配置
        }
      ]
    };
    

    或者拆成两个独立配置文件:

    • jest.config.unit.js(常规测试):
      module.exports = {
        displayName: 'unit-tests',
        testMatch: ['<rootDir>/src/**/*.test.js']
      };
      
    • jest.config.lint.js(Lint测试):
      module.exports = {
        displayName: 'lint',
        runner: 'jest-runner-eslint',
        testMatch: ['<rootDir>/src/**/*.js']
      };
      

    主配置里引用这两个文件:

    module.exports = {
      projects: ['./jest.config.unit.js', './jest.config.lint.js']
    };
    
  2. 用--selectProjects运行指定项目

    • 只跑常规测试:
      npx jest --selectProjects unit-tests
      
    • 只跑Lint测试:
      npx jest --selectProjects lint
      

方法2:直接指定单个配置文件运行

如果你的Jest版本低于24,或者不想用displayName,可以直接指定对应的配置文件来单独运行某一组测试:

  • 运行常规测试:
    npx jest --config jest.config.unit.js
    
  • 运行Lint测试:
    npx jest --config jest.config.lint.js
    

为什么--projects参数会报错?

你之前用--projects出错,是因为这个参数的作用是添加额外的项目路径,而不是筛选已配置好的projects数组项。Jest会把你传入的路径当作monorepo的子包目录去扫描,自然会和你当前的配置逻辑冲突。而--selectProjects才是专门为筛选配置内的projects数组设计的参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:01:13