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

Posted

技术标签:

【中文标题】KarmaJS 中的代码覆盖率过高,具有 karma-coverage 和 Jasmine【英文标题】:too high Code Coverage in KarmaJS with karma-coverage & Jasmine 【发布时间】:2016-04-02 14:23:07 【问题描述】:

我使用 Jasmine 作为我的 AngularJS 应用程序的测试框架。我在 Grunt & KarmaJS 的帮助下运行测试。 KarmaJS 还借助karma-coverage 生成代码覆盖率。

现在我已经为配置数据创建了一个模型,我还必须为其他测试实例化它。由于这个实例化,我得到了这个文件的代码覆盖率,尽管我没有对它进行任何测试。只是因为在测试运行时使用了所有行,覆盖率是 100%。

现在的问题是:有没有办法在我的测试中指定它们涵盖哪些文件?

php 单元中有一个@covers annotation,它指定了测试覆盖的代码。

谢谢

【问题讨论】:

【参考方案1】:

由于 karma-coverage 在后台使用 Istanbul,因此 Istanbul 的所有配置都应该适用于 karma-coverage。

在伊斯坦布尔,您可以指定 a block of code be ignored for coverage purposes。您可以尝试在文件顶部放置这样的内容:

/* istanbul ignore next */

我自己没有尝试过,但我敢打赌这个或类似的东西会做你想做的事。

【讨论】:

首先感谢您的回复和链接。但这不是我想做的。这不包括包含在覆盖率报告中的代码。但是我需要注释我的测试它们涵盖了哪些代码。使用忽略注释,我在覆盖率报告中不应考虑的源代码行内进行注释。但也许有人在忽略的帮助下找到了一个很好的解决方法,但我在这里看不到解决方案。

以上是关于KarmaJS 中的代码覆盖率过高,具有 karma-coverage 和 Jasmine的主要内容,如果未能解决你的问题,请参考以下文章

配置 Angular 9 e2e cobertura 覆盖率报告的正确方法是啥?

如何将未覆盖的文件视为具有SonarQube通用覆盖XML的0覆盖?

使用代码覆盖率工具有啥好处? [关闭]

具有代码覆盖率的 UIAutomation

使用具有多个目标的 CodeCoverage.cmake 进行代码覆盖率分析

VueJS 组件:具有 vue-class-component 的单独文件的代码覆盖率