![](/img/trans.png)
[英]How to send Jacoco code coverage report in email from jenkins?
[英]Jacoco Code Coverage Report Shows 0 coverage in Jenkins
Jacoco插件在jenkins报告中显示了0%的覆盖率,但是当我在本地系统中运行相同的命令时,jacoco会正确生成报告。 我正在使用以下命令:
mvn -s xyz / settings.xml -f xyz / xyz / pom.xml全新安装org.jacoco:jacoco-maven-plugin:report-aggregate
因此,当我在jenkins中运行此命令时,它将生成错误的报告。 我将它放在WorkSpace目录中,用于jenkins中的相应项目。 它显示每个项目的覆盖率为0%。 但是,当我在本地系统中运行相同的maven命令时,jacoco-maven会生成正确的覆盖率报告。 我可以看到它们,就像它们是HTML格式一样。
我的pom.xml可以通过maven运行jacoco:
<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>
我正在使用以下工具:
jacoco-maven-plugin version 0.7.7
jenkins-jacoco-plugin version 2.0.1
apache-maven version 3.5.0
这也是我的jenkins控制台日志,我在执行maven命令后获得了该日志。
[JaCoCo plugin] Collecting JaCoCo coverage data...
[JaCoCo plugin] **/**.exec;**/target/classes;**/src; locations are configured
[JaCoCo plugin] Number of found exec files for pattern **/**.exec: 0
[JaCoCo plugin] Saving matched execfiles:
[JaCoCo plugin] Saving matched class directories for class-pattern: **/target/classes:
<<<<<<Classes folders list for all project>>>>>>>>
[JaCoCo plugin] Loading inclusions files..
[JaCoCo plugin] inclusions: []
[JaCoCo plugin] exclusions: []
[JaCoCo plugin] Thresholds: JacocoHealthReportThresholds [minClass=0, maxClass=0, minMethod=0, maxMethod=0, minLine=0, maxLine=0, minBranch=0, maxBranch=0, minInstruction=0, maxInstruction=0, minComplexity=0, maxComplexity=0]
[JaCoCo plugin] Publishing the results..
[JaCoCo plugin] Loading packages..
[JaCoCo plugin] Done.
[JaCoCo plugin] Overall coverage: class: 0, method: 0, line: 0, branch: 0, instruction: 0
Finished: SUCCESS
以下是我针对jacoco报告的jenkins设置:
这是我的目标目录的文件夹结构。
目标目录位于项目目录下。
因此,我真正关心的是为什么在jenkins上这些文件(即覆盖率文件)无法正确生成,而本地系统中的同一命令生成了正确的覆盖率报告。
谢谢。
PS:-我是在多模块环境中执行此操作的,其中我的源文件存在于一个项目中,而测试文件可存在于另一个项目中。 因此,对于每个源项目,都有一个测试项目。 我还注意到一件事,运行maven命令后,在源的/ target / classes目录下创建了类文件,而在测试项目的/ target / site目录下生成了用于报告的html文件。 我不确定为什么会这样。
我找到了我错过的那段代码,因为这些代码不是用詹金斯生成的。
我忘记在父pom.xml
<reporting>
标记内添加jacoco-maven-plugin
。 我只在<pluginManagement>
& <build>
添加了它。
:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.