为啥 Karma Coverage 实际显示“未涵盖的声明”?

Posted

技术标签:

【中文标题】为啥 Karma Coverage 实际显示“未涵盖的声明”?【英文标题】:Why Karma Coverage is showing "statement not covered" when it actually is?为什么 Karma Coverage 实际显示“未涵盖的声明”? 【发布时间】:2020-08-27 20:42:30 【问题描述】:

我的业力覆盖率报告显示了很多“未覆盖的声明”,而这些实际上是。

我知道“未调用的语句”确实被称为: - 我明确为这些编写了测试 - 甚至报告在“未调用”语句旁边显示“1x”。

后者的意思是调用一次吧?

所以我想知道是否有一个配置规定一个语句不被视为“调用”,除非它被调用给定的次数?如果是的话,我也没有找到任何与这种配置相关的东西。

任何帮助将不胜感激! 我创建了一个 gist here ,其中包含 5 个可能有助于解决此问题的文件。

【问题讨论】:

【参考方案1】:

我想我找到了“罪魁祸首”。

这种情况发生在我模拟的方法上。真正的实现没有被调用,它被检测为没有被覆盖,这完全有道理。

【讨论】:

如果你使用spyOn(component, 'method').and.callThrough(),你应该得到这些语句的覆盖

以上是关于为啥 Karma Coverage 实际显示“未涵盖的声明”?的主要内容,如果未能解决你的问题,请参考以下文章

Angular Code Coverage 错误输出

.Karma+Jasmine+karma-coverage

将 karma-coverage 添加到 ember 测试

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

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

KarmaJS 中的代码覆盖率过高,具有 karma-coverage 和 Jasmine