SonarQube + Reports中未显示的从属模块的总覆盖率或覆盖率是由Jacoco

时间:2018-10-06 07:14:11

标签: java jenkins sonarqube jacoco-maven-plugin eclemma

我正在运行jacoco插件来生成html,xml和jacoco.exec报告,以评估testNg测试中所测试代码的覆盖范围。

我在本地和Jenkins上都能成功生成这些报告,并且我所有的单元测试结果都反映在Sonar中,并向我展示了覆盖范围。

我的jacoco.exec包含模块和从属模块的覆盖率结果。我已使用eclemma plugin的{​​{1}}对此进行了验证。

我在Sonar的依赖模块中没有得到覆盖结果。我做错了吗?

我的插件是这样的

eclipse

我的目标是<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.7.201606060606</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin>

1 个答案:

答案 0 :(得分:1)

我从jacoco plugin coverage in multi-module 那里得到了答案

以下是我犯下的错误,这些错误引起了我的麻烦。在我们pom的属性中

 <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>

和插件

 <destFile>${sonar.jacoco.reportPath}</destFile>

对我来说,由于maven模块层次结构的差异(导致它们从未聚合),因此上述语句将jacoco.exec刷新到不同的文件夹中。

第二点是,仅当依赖模块是测试模块的compile time dependency时,才会获得从属模块覆盖率。