3

我有一个 JavaScript 文件,它通过 karma-coverage 生成代码覆盖率报告。据我了解,Karma-coverage 通过伊斯坦布尔生成报告。此时,伊斯坦布尔会生成两个感兴趣的文件:一个 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 文件中不只是一个摘要吗?

4

1 回答 1

2

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

那是因为它没有:)

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

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

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

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

于 2014-10-20T23:25:09.250 回答