2017-09-22 116 views
2

Jacoco插件显示詹金斯报告覆盖率为0%0覆盖,但是,当我跑在本地系统中相同的命令,jacoco正确生成报告。我使用下面的命令:Jacoco代码覆盖率报告显示詹金斯

MVN -s XYZ/settings.xml中-f XYZ/XYZ/pom.xml的全新安装org.jacoco:jacoco - Maven的插件:报告聚集

所以当我在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 

而且这是我后让我的詹金斯控制台日志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报告设置:

enter image description here

这是我的目标目录的文件夹结构。

enter image description here

目标目录是项目目录下存在。

所以我真正关心的是为什么詹金斯这些文件,即覆盖文件,同时在我的本地系统相同的命令生成正确的覆盖报告没有得到正确生成。

谢谢。

P.S. : - 我在多模块环境中执行此操作,其中我的源文件存在于一个项目中,并且测试文件在另一个项目中可用。 因此,对于每个源项目都存在一个测试项目。 另外一件事我刚刚注意到,在运行maven命令之后, 类文件在source的/ target/classes目录下创建,而报告的html文件在测试项目的/ target/site目录下生成。我不确定这是为什么。

+0

行'的模式发现EXEC文件数**/** EXEC:。0'在日志可疑 - 胡乱猜测,但你可以尝试像'**/* EXEC '或'**/jacoco.exec'? – Godin

+0

是的,我会尝试。但是jenkins系统本身没有正确生成文件。所以,即使它使用正确的路径执行exec文件,它也不会显示正确的报告bcz报告本身在jenkins框中生成错误。 – Jay

+0

请再阅读文档http://www.jacoco.org/jacoco/trunk/doc/report-mojo.html和http://www.jacoco.org/jacoco/trunk/doc/report-aggregate-mojo .html关于生成文件的位置等等。奇怪的是,你将它们混合在一起,并且你要求从命令行执行最后一个,因为它考虑了执行模块的依赖关系,只有那些属于reactor的部分,也就是部分目前的构建。 – Godin

回答

0

我发现一段代码我错过了,因为它的报告没有詹金斯生成。

我忘了里面添加父pom.xml中的标签jacoco - Maven的插件。 我只在&中加入了它。

:-)

相关问题