繁体   English   中英

Jacoco代码覆盖率报告显示Jenkins的覆盖率为0

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM