为啥 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 实际显示“未涵盖的声明”?的主要内容,如果未能解决你的问题,请参考以下文章
Karma-coverage 检查 JS 文件中的测试覆盖率,而不是 Angular 2 中的 TS