【发布时间】:2017-05-30 15:38:34
【问题描述】:
我在 Ubuntu 14.04 LTS 上使用流星覆盖包(版本 1.1.4)和 mocha(版本 2.4.5_6)和流星版本 1.4.4.1。我已经能够生成非常漂亮的测试覆盖率报告,但对于客户端测试似乎有些不对劲。为了将覆盖数据发送到 localhost:3000/coverage,我创建了一个名为 sendCoverage() 的函数,我将其导入到我的 .tests.js 文件中:
export const sendCoverage = function sendCoverage() {
Meteor.sendCoverage(function(stats,err) {console.log(stats,err);});
};
我在 mocha 测试块之后调用这个函数:
after (function () {
sendCoverage();
});
现在,这会在我的 localhost:3000/coverage 页面中生成测试覆盖率报告,但它似乎无法正确显示覆盖率。例如,我看到一些语句已执行,但以红色突出显示并标记为未覆盖。例如:
似乎这些语句分别执行了 11 次和 12 次。但是,它们没有被标记为被覆盖,在我的报告中,声明覆盖的百分比反映了这一点。
有谁知道我可能做错了什么和/或有客户端代码覆盖和流星覆盖包的经验?
谢谢!
解决方案后编辑
看来我现在可以正常工作了。 Codacy 上的百分比与我的 html 报告中的百分比相匹配。更仔细地查看 html 报告,似乎覆盖数字毕竟是正确的。只是向下钻取显示了奇怪的行为。因此,结论是它毕竟有效,但 Codacy 的第二意见向我证实了这一点。我的新方法是使用 spacejam 创建 lcov 覆盖率报告(请参阅下面 Ser 的回答)并将这些报告导出到 Codacy、Codecov 或 SonarQube 等外部服务。
感谢 Serut 的输入!
【问题讨论】:
标签: meteor mocha.js code-coverage istanbul codacy