在 package.json 中配置 Jest 覆盖率需设置 jest 字段:collectCoverage 为 true 启用收集,coverageDirectory 指定相对根目录的输出路径(如 "coverage"),coverageProvider 设为 "v8" 确保兼容性和准确性。

在 package.json 中配置 Jest 覆盖率输出目录,不需要单独写路径字段,而是通过 jest 字段(或 jest.config.js)设置 coverageDirectory。但如果你希望直接在 package.json 里声明 Jest 配置(不新建 jest.config.js),可以这样写:
{
"jest": {
"collectCoverage": true,
"coverageDirectory": "coverage",
"coverageProvider": "v8"
}
}✅ 这三个选项是关键:
-
"collectCoverage": true:启用覆盖率收集(必须开启) -
"coverageDirectory": "coverage":指定报告生成位置(默认就是coverage/,可改为你想要的路径,比如"coverage-jest") -
"coverageProvider": "v8":强制使用 V8 引擎生成覆盖数据(Node 14+ 推荐,比babel更快更准;若不设,某些环境可能 fallback 到不兼容的 provider)
⚠️ 注意事项:
-
coverageDirectory的值是相对项目根目录的路径,最终会生成如./coverage/lcov.info、./coverage/index.html等文件 - 若同时存在
jest.config.js,package.json中的jest字段会被忽略(Jest 优先读取配置文件) - 确保
scripts中有能触发覆盖率的命令,例如:"scripts": { "test:coverage": "jest --coverage", "test": "jest" }运行
npm run test:coverage才会真正生成coverage/目录立即学习“Java免费学习笔记(深入)”;
? 小技巧:想把报告输出到子目录(比如隔离不同环境)?
"coverageDirectory": "coverage/unit"
这样会生成 coverage/unit/lcov.info,方便后续配合 VSCode 插件或 CI 工具精准读取。
不复杂但容易忽略:coverageProvider 必须显式设为 "v8",否则 VSCode 的 Jest 插件或 Coverage Gutters 可能无法解析行级覆盖数据。


















