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

Jest代码覆盖率无法识别父目录JS文件问题求助

Jest代码覆盖率无法识别父目录JS文件问题求助

我目前在项目里遇到了Jest代码覆盖率统计的棘手问题:我的测试文件都集中放在单独的jest文件夹中,但需要测试的代码来自父目录下两个不同的源码文件夹。之前查了相关帖子,说把rootDir设置为这些文件夹的公共父目录,再把目标源码文件夹加入roots数组就能解决覆盖率不统计父目录文件的问题,但实际操作后,源码文件夹里的JS文件还是没被覆盖率工具识别到——我特意移动了一个JS文件测试,发现只有和Jest配置文件同目录下的文件才会被纳入覆盖率统计。

我的Jest配置文件如下:

{
  "testEnvironment": "jsdom",
  "testMatch": [
    "**/jest/**/*.test.js"
  ],
  "rootDir": "../../",
  "transform": {
    "^.+\\.[t|j]sx?$": [
      "babel-jest",
      {
        "configFile": "./babel.config.json"
      }
    ]
  },
  "transformIgnorePatterns": [
    "node_modules/(?!(parsel-js|cheerio|uuid)/)"
  ],
  "roots": [
    "<rootDir>/mu-plugins/tests",
    "<rootDir>/mu-plugins/core/assets/src/js",
    "<rootDir>/themes/theme/assets/ts"
  ],
  "setupFilesAfterEnv": [
    "<rootDir>/mu-plugins/tests/jest.setup.js"
  ],
  "moduleDirectories": [
    "<rootDir>/mu-plugins/tests/node_modules"
  ],
  "globals": {
    "CSS": {}
  },
  "collectCoverageFrom": [
    "**/*.js"
  ],
  "coveragePathIgnorePatterns": [
    "/node_modules/",
    "/coverage/"
  ],
  "coverageDirectory": "<rootDir>/mu-plugins/tests/coverage"
}

我使用的Jest版本是29.7。

为了解决问题我已经尝试了这些操作,但都没有效果:

  • 将rootDir从和配置文件同层级修改为公共父目录,并添加了所有相关目录到roots数组(确认路径是正确的,因为如果故意写错路径,Jest会直接抛出错误)
  • 手动清理Jest缓存
  • 尝试了多种collectCoverageFrom的写法组合
  • 修改forceCoverageMatch的值来强制匹配目标文件

运行jest --coverage后的输出如下:

> jest --coverage

 PASS  jest/theme/components/shared/info.test.js
 PASS  jest/core/variant/variant.test.js
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |
----------|---------|----------|---------|---------|-------------------

Test Suites: 2 passed, 2 total
Tests:       5 passed, 5 total
Snapshots:   0 total
Time:        5.112 s
Ran all test suites.

备注:内容来源于stack exchange,提问作者gdetassigny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 12:05:32