声纳测试覆盖范围不包括间接类

时间:2015-06-01 17:26:31

标签: java sonarqube

如果我有以下类别(A和B),每个类别都在一个单独的模块中,并且我为A.doSomething()创建了一个测试,那么Sonar会抱怨{{0> 覆盖{{0> 1}}虽然它正在B.doSomething()间接测试。 使用 Ecclema 覆盖插件进行日食,我可以认为TestA已被覆盖。

为什么Sonar会以这种方式行事?有没有办法改变Sonar代码测试覆盖范围的行为,以包括间接测试的类?

see B.doSomething()

1 个答案:

答案 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