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覆盖?