我正在运行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>
答案 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
时,才会获得从属模块覆盖率。