Jest: How to merge coverage reports from different jest test runs

ano*_*spp 6 jestjs

Has anyone managed to combine test coverage report from two separate jest test runs?

I am newbie trying to use the default jest coverage reporters : ["json", "lcov", "text", "clover"]

I have tried using nyc to combine coverage-final*.json files from tmp folder and output to full-test-coverage folder.

npx nyc report --report-dir=full-test-coverage/ --reporter=html -t tmp 
Run Code Online (Sandbox Code Playgroud)

The full-test-coverage folder is created with index.html etc. However, the combined report is empty.

jrr*_*jrr 18

我设法让它与 nyc 合作。脚步:

  • 使用覆盖报告器“json”收集多个覆盖报告
  • 将它们全部放在一个目录中(在我的情况下需要重命名多个coverage-final.json文件)
  • nyc merge multiple-sources-dir merged-output/merged-coverage.json
  • nyc report -t merged-output --report-dir merged-report --reporter=html --reporter=cobertura

  • 那么 2022 年 7 月可以做到这一点的最新工具是什么? (3认同)
  • 非常感谢 @jrr 包含并强调弃用并强调替代方案:) (2认同)
  • 不幸的是,这些报告根本不准确,而且严重低估了覆盖率。纽约似乎也被遗弃了。 (2认同)

小智 10

我也在为此苦苦挣扎,但我设法通过使用istanbul-merge包来做到这一点

因此,假设您要合并coverage-final.json位于两个不同文件夹f1和中的两个测试覆盖率f2,并命名f3/coverage.json您可以执行的输出:

npx istanbul-merge --out coverage.json ./f1/coverage-final.json ./f2/coverage-final.json

然后使用 instanbul 创建 HTML 报告:

npx istanbul report --include coverage.json --dir f3 html

  • 我开始使用这种方法(有效!),但是当查找“istanbul”的其他选项时,我发现该工具已弃用(https://www.npmjs.com/package/istanbul)。 (2认同)