如果我有以下类别(A和B),每个类别都在一个单独的模块中,并且我为A.doSomething()
创建了一个测试,那么Sonar会抱怨{{0> 覆盖{{0> 1}}虽然它正在B.doSomething()
间接测试。
使用 Ecclema 覆盖插件进行日食,我可以认为TestA
已被覆盖。
为什么Sonar会以这种方式行事?有没有办法改变Sonar代码测试覆盖范围的行为,以包括间接测试的类?
see B.doSomething()
答案 0 :(得分:1)
您可以轻松实现自己想要的目标。这是您如何配置JaCoCo的问题,因此它与SonarQube几乎没有关系。 例如,在SonarQube Eclipse项目中,我们需要它,因为单元测试是在一个单独的模块中。
因此我们已将JaCoCo配置为对所有模块使用相同的转储文件(默认情况下,JaCoCo Maven插件将为每个模块使用一个单独的转储): https://github.com/SonarSource/sonar-eclipse/blob/master/pom.xml#L373
然后我们配置SonarQube JaCoCo插件以使用相同的报告: https://github.com/SonarSource/sonar-eclipse/blob/master/pom.xml#L357