我想要解决以下挑战。这里有一个当前设置:合并来自多个来源的Jacoco报告文件
- 詹金斯
- Maven的
- SonarQube
- 与多个模块
所以目前在詹金斯我们有2个版本,一个为正常分娩和另外一个Java应用程序生成声纳报告。
我们想要做的是用JaCoCo参数线生成一个构建,并将其发送到我们的QA团队,以便获得更好的覆盖数字,我们可以使用声纳生成的数字来追加或合并建立我们每一天。发送给QA的构建将安装到与我们生成构建的服务器不同的服务器上。
什么是最好的方法来执行此操作。最终我们还希望从我们的开发工作站获得JaCoCo报告,并将这些数字附加到我们的声纳页面。
编辑1 感谢来提供这个线程我可以用下面的JVM选项来启动我的多模块应用的详细信息:"-javaagent:${MAIN_DIR}/lib/jacocoagent.jar==destfile=/jacoco.exec,output=tcpserver,address=*"
在我詹金斯建设我有前步骤去如下: 一个调用目标jacocoReport的ant任务。 我为此使用的build.xml具有以下代码;
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="/opt/hudson/tools/jacocoant.jar"/>
</taskdef>
<target name="jacocoReport">
<jacoco:dump address="${jacoco.host}" port="${jacoco.port}" dump="true" reset="true" destfile="${jacocoReportFile}" append="false"/>
</target>
<target name="jacocoReset">
<jacoco:dump address="${jacoco.host}" port="${jacoco.port}" reset="true" destfile="${jacocoReportFile}" append="false"/>
<delete file="${jacocoReportFile}"/>
</target>
最后我有一个Maven构建步骤,呼吁声纳:声纳
这里是相对于我的积分报告POM的部分;
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.itReportPath>${WORKSPACE}/it-jacoco.exec</sonar.jacoco.itReportPath>
<sonar.language>java</sonar.language>
<sonar.branch>9.9.5</sonar.branch>
构建完成后,我的Sonar条目仍显示为0%,用于我的集成测试。但是当我使用相同的-jacoco.exec报告并使用Eclipse的Jacoco导入Coverage会话导入它时,我获得了26%的覆盖率。
最后,当我看着我的Jenkins构建日志时,我看到以下内容;
Sensor JaCoCoItSensor...
Analysing /var/lib/jenkins/workspace/XXXXXX/it-jacoco.exec
No information about coverage per test.
Sensor JaCoCoItSensor done: 34 ms
好吧,听起来不错,但我踢我的Java应用程序使用ant和build.xml文件。而且我无法弄清楚把jacoco蚂蚁变量放在哪里。 _italic_ ** **粗体<目标名称= “开始” 描述= “启动任务管理器”> \t \t \t \t \t \t \t <类路径REFID =” project.class.path” /> \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t
lbarriau
2014-09-29 15:08:23
您已经指定了一些JVM参数。只需添加另一个jvmarg标记,将值设置为启用jacoco。 – 2014-09-29 18:35:53
我想我明白了。最后一个整合问题。假设我使用TCPServer选项来远程启动报告生成...一旦生成报告,Sonar的最佳方法是什么?我已经在Sonar中为我的项目提供了一个来自Maven的项目。我可以将远程生成的文件追加到maven中生成的文件中,如果是,如何? – lbarriau 2014-10-03 19:51:14