【问题标题】:Jest: How to merge coverage reports from different jest test runs玩笑:如何合并来自不同玩笑测试运行的覆盖率报告
【发布时间】:2020-06-24 16:53:45
【问题描述】:

有没有人设法将来自两个单独的 jest 测试运行的测试覆盖率报告结合起来?

我是新手,尝试使用默认的笑话报道记者:["json", "lcov", "text", "clover"]

我曾尝试使用 nyc 来合并 tmp 文件夹中的 coverage-final*.json 文件并输出到 full-test-coverage 文件夹。

npx nyc report --report-dir=full-test-coverage/ --reporter=html -t tmp 

full-test-coverage 文件夹是用 index.html 等创建的,但是合并的报告是空的。

【问题讨论】:

    标签: jestjs


    【解决方案1】:

    我设法让它与纽约市合作。步骤:

    • 使用覆盖报告“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

    【讨论】:

    • 非常感谢@jrr 包含并强调弃用和强调替代方案:)
    • 对于任何尝试这个的人,我仍在使用它并且它仍然有效,但我对nyc merge 生成的报告的准确性没有很大的信心,尤其是当输入来自不同的工具。相关问题:github.com/istanbuljs/nyc/issues?q=is%3Aissue+is%3Aopen+merge
    • 不幸的是,这些报告根本不准确,并且严重低估了覆盖率。纽约市似乎也被遗弃了。
    【解决方案2】:

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

    因此,假设您要合并位于两个不同文件夹 f1f2 中的两个名为 coverage-final.json 的测试覆盖率,并将输出命名为 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

    【讨论】:

    • ...它成功了 :) 再次感谢@nalmada,非常感谢!!!
    • 我从这种方法开始(可行!),但在查找 istanbul 的其他选项时,我发现该工具已被弃用(npmjs.com/package/istanbul)。
    【解决方案3】:

    要合并,我通常使用带有--no-clean 选项的nyc,如下所示:

    {
        "cover": "npm run cover:unit && npm run cover:integration && npm run cover:report",
        "cover:unit": "nyc --silent npm run test:unit",
        "cover:integration": "nyc --silent --no-clean npm run test:integration",
        "cover:report": "nyc report --reporter=text-lcov > coverage.lcov",
    }
    

    【讨论】:

    • 很高兴能更清楚地了解您在此处所做的事情、标志的作用以及其工作原理。这只是文档的复制/粘贴,没有解释
    • @Quest 编辑欢迎。
    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2019-07-12
    • 2020-11-14
    • 1970-01-01
    • 2020-06-30
    相关资源
    最近更新 更多