【发布时间】:2012-02-10 11:51:49
【问题描述】:
我将工作从单台 Hudson 机器转移到多从机 Jenkins 环境,现在 JaCoCo 覆盖不再有效。
工作(旧): 哈德逊 2.0.1, 詹金斯声纳插件 1.7.1, 声纳 2.1.2
破损(新): 詹金斯 1.446, 詹金斯声纳插件 1.7.2, 声纳 2.1.2
我的 Hudson 工作称为 Pinnacle,它曾经在一台 Hudson 服务器上与 Sonar 在同一台机器上运行。我通过执行以下操作来设置我的 (NO MAVEN) 构建。
1) 在我的 build.xml 中添加了一个 Ant 目标,名为 test-with-coverage
2) 将 Hudson 中的 Pinnacle 作业配置为“调用独立声纳分析”,并具有以下属性:
sonar.projectKey=com.skyboximaging:pinnacle
sonar.projectName="Pinnacle"
sonar.projectVersion=1.0
sources=Pinnacle/src/java
tests=Pinnacle/test/java
binaries=Pinnacle/classes
sonar.jacoco.reportPath=Pinnacle/jacoco.exec
sonar.jacoco.antTargets=test-with-coverage
(请注意,代码已检出到 Jenkins 作业工作区的 Pinnacle 目录中。)
3) 配置声纳“常规设置”以使用 JaCoCo 进行代码覆盖
一切都很顺利!
但是在新的 Jenkins 环境中,我在 Jenkins 构建输出中看到了这个错误:
23:15:17.863 INFO Sensor JaCoCoSensor...
23:15:17.868 INFO Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/workspace/Pinnacle/Pinnacle/jacoco.exec
该文件在运行构建的从属服务器上不存在。 (目录 /var/lib/jenkins/workspace/Pinnacle/Pinnacle 确实存在。)
所有其他传感器(FindBugs、PMD 等)似乎工作正常。只是 JaCoCo 坏了。
Sonar/JaCoCo 甚至可以在多从属 Jenkins 环境中工作吗?
我怀疑 Ant 任务 test-with-coverage 没有运行。 Sonar 如何定位 build.xml?新旧安装有什么不同?
【问题讨论】: