我使用过的大部分项目都使用Gradle 1.6,使用Java7达到2.3,我使用Jacoco进行代码覆盖。
Jenkins版本是:1.565.3和1.618(我有两个实例)
Jenkins的Jacoco插件版本:1.0.12
Gradle版:2.3
Gradle的Jacoco插件版本:0.7.2.201409121644
现在在Gradle,有一个jacoco插件(提供jacocoTestReport任务),在Jenkins那里有一个Jacoco插件,它读取通过运行各种测试生成的exec文件并显示Jenkins工作的报告&#39 ; s仪表板。
如果我使用Java 8和Gradle 2.0高达2.3版本,这些报告现在不会出现。 Jenkins的工作成功地在Jacoco上构建并运行分析,但报告已经消失。
您是否见过这个问题?
如果你看到这一点,它会显示Coverage已经消失,并且最新版本的所有内容都是RED / no coverage。
主信息中心:
Jacoco插件报告(如果您点击上述工作报告):
注意:
我有有效的.exec文件,如果我使用Gradle的jacocoTestReport任务生成HTML格式的覆盖范围,但Jacoco插件仪表板报告没有显示任何内容,则显示有效的代码覆盖率(仅显示标题)没有数据/根本没有覆盖。
当我使用Java7时,jkins中的jacocoTestReport和Jacoco插件生成的报告生成了有效的输出。
Gradle的jacocoTestReport 任务使用相同的.exec文件生成的报告显示我拥有的jacoco * .exec文件有效。
答案 0 :(得分:0)
我找出了为什么没有为Java 8项目显示代码覆盖率的原因。
这是由于Jenkins的 Jacoco插件的不兼容版本,它只适用于Jenkins实例中的Java7。尝试将Jenkins中的Jacoco插件更新到最新版本(1.0.15 +)。
版本1.0.15提供了对Java 8的支持。 Jacoco插件的发行说明
版本1。0。15(2014年6月11日)
•修复[JENKINS-20440]检查员问题
•修复[JENKINS-22716] - 更新到JaCoCo 0.7.x以支持Java 8
•修复#40 - 项目仪表板图表,数据被截断
因此,需要在Jenkins中升级jacoco插件。
另请参阅此处的版本信息/发布信息:https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin
您会注意到有一条警告信息(此时)可能会在即将发布的版本中解决(几天内)。
不幸的是,JaCoCo 0.7.5破坏了与jacoco.exec文件的先前二进制格式的兼容性,JaCoCo插件目前基于JaCoCo 0.7.4,因此您不能将此插件用于已经使用JaCoCo 0.7的项目。 5或更新,请立即坚持0.7.4或更低,直到插件更新