Parse Karma-覆盖 |伊斯坦布尔报告

Posted

技术标签:

【中文标题】Parse Karma-覆盖 |伊斯坦布尔报告【英文标题】:Parse Karma-Coverage | Istanbul report 【发布时间】:2013-12-21 05:29:09 【问题描述】:

我有一个 javascript 文件,它通过 karma-coverage 生成代码覆盖率报告。据我了解,Karma-coverage 通过伊斯坦布尔生成报告。此时,istanbul 会生成两个感兴趣的文件:一个 html 报告和一个 .json 文件。

HTML 报告包含语句覆盖率、分支覆盖率、函数覆盖率和行覆盖率的百分比。可以在此处查看 HTML 报告的示例:http://gotwarlost.github.io/istanbul/public/coverage/lcov-report/index.html

.json 文件在名为coverage.json 的文件中生成。可以在此处查看 coverage.json 文件的示例:http://gotwarlost.github.io/istanbul/public/coverage/coverage.json。

在我的一生中,我无法弄清楚 HTML 报告如何从 .json 文件中获取语句、覆盖率、分支和函数覆盖率百分比。但是,我要从 .json 文件中获取语句、覆盖率、分支和函数覆盖率百分比。

我是否误解了 .json 文件是什么? .json文件里不就是一个总结吗?

【问题讨论】:

【参考方案1】:

在我的一生中,我无法弄清楚 HTML 报告是如何获得 语句、覆盖率、分支和函数覆盖率百分比 .json 文件

那是因为它没有:)

这两个文件已生成,但彼此无关。它们只是结果的两个版本,两个报告。它们是相同信息的两种表示形式。

您可能会问,我为什么需要 json 文件。 如果您需要将该信息用作另一个程序的输入,那就是这样。

我现在使用的就是一个例子。我正在使用我的报道记者的输出在我的编辑器中生成彩色线条来告诉我所报道的内容。正如您想象的那样,解析 json 文件(或在我的情况下为 lcov 文件,语法相同)比 HTML 版本更容易。

澄清一下:Karma 只运行你的插件。伊斯坦布尔进行覆盖测试,并生成您的记者知道如何处理的输出。这些记者会生成(在您的情况下)一个 HTML 文件和一个 JSON 文件。

【讨论】:

以上是关于Parse Karma-覆盖 |伊斯坦布尔报告的主要内容,如果未能解决你的问题,请参考以下文章

Karma + Browserify + Jasmine + 伊斯坦布尔 + React 覆盖

Angular中伊斯坦布尔覆盖报告中的标记异常

Karma-coverage 检查 JS 文件中的测试覆盖率,而不是 Angular 2 中的 TS

Karma-Coverage 和伊斯坦布尔 HTML 报告未输出到预期目录

使用 Webpack 的 Karma:伊斯坦布尔覆盖率为 100%(0/0)

将来自 karma-coverage 的 istanbul 测试覆盖率与来自其他来源的覆盖率合并