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

React应用中Jest执行完测试后卡在代码覆盖率环节

解决Jest卡在“Running coverage on untested files...”的方案

以下是针对React项目中Jest生成覆盖率时卡住问题的具体排查和解决步骤:

  • 精确限定覆盖率收集范围
    避免让Jest扫描无关文件,在jest.config.js中明确指定需要覆盖的业务代码路径,排除mock、配置、类型定义等不需要统计的文件:

    module.exports = {
      collectCoverage: true,
      collectCoverageFrom: [
        'src/**/*.{js,jsx,ts,tsx}', // 只收集源码文件
        '!src/**/*.d.ts', // 排除类型定义
        '!src/**/mock/**', // 排除mock文件夹
        '!src/**/config/**', // 排除配置文件
        '!src/index.{js,jsx,ts,tsx}' // 排除入口文件(可选)
      ],
    };
    
  • 切换覆盖率收集器为V8
    默认的babel覆盖率收集器可能存在性能或兼容性问题,改用V8引擎的收集器:
    在jest.config.js中添加配置:

    coverageProvider: 'v8'
    

    或者直接用命令行参数执行:

    jest --coverage --coverageProvider=v8
    
  • 排除大文件/特殊静态资源
    检查项目中是否有大体积文件(如几MB的JSON、SVG等静态资源)被误纳入扫描范围,在coveragePathIgnorePatterns中明确排除:

    coveragePathIgnorePatterns: [
      '/node_modules/',
      '/dist/',
      '/public/',
      'src/large-static-file.json',
      'src/**/*.svg',
      'src/**/*.png'
    ]
    
  • 升级Jest及相关依赖
    旧版本的Jest可能存在文件扫描的bug,尝试升级到最新稳定版:

    npm uninstall jest babel-jest @types/jest
    npm install -D jest@latest babel-jest@latest @types/jest@latest
    
  • 排查符号链接问题
    如果项目中存在符号链接,Jest可能会陷入循环扫描,在modulePathIgnorePatterns中排除符号链接指向的目录:

    modulePathIgnorePatterns: ['<rootDir>/path-to-your-symlink/']
    
  • 定位卡住的具体文件
    执行测试时添加--verbose参数,查看Jest最后处理的文件路径,针对性排除:

    jest --coverage --verbose
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:25:21