4

Jenkins で Sonar を使用して JaCoCo コード カバレッジ エンジンを構成する必要があります。

sonar-project.properties ファイルに次のエントリを作成しました

sonar.projectKey=projectX:projectX
sonar.projectName=projectX
sonar.projectVersion=1.0
sources=src
tests=test
binaries=workspace/stage/main/classes,workspace/stage/test/classes
libraries=workspace/stage/artifact/lib/*.jar
sonar.dynamicAnalysis=reuseReports
sonar.core.codeCoveragePlugin=jacoco
sonar.jacoco.reportPath=reports/jacoco.exec

また、次の ant タスクも作成しました。

<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
</taskdef>
<target name="jacoco-coverage">
<jacoco:coverage enabled="true" destfile="jacoco.exec">
<junit fork="true" forkmode="once" includeAntRuntime="true" maxmemory="512M"                                                                                                                                 printsummary="withOutAndErr" haltonfailure="false">
<test name="com.test.HelloWorld"/>
<batchtest todir="workspace/stage/test/classes/">
<fileset dir="../test" includes="**/*.java"/>
</batchtest>
<classpath>
<path refid="classpath.test"/>
<pathelement location="workspace/stage/test/classes/" />
</classpath>
</junit>
</jacoco:coverage>
</target>

<target name="jacoco-report">
<jacoco:report>
<executiondata>
<file file="jacoco.exec" />
</executiondata>
<structure name="Example Project">
<classfiles>
<fileset dir="workspace/stage/test/classes" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="test" />
</sourcefiles>
</structure>
<html destdir="report" />
</jacoco:report>
</target>

jacoco.exec ファイルが「jacoco-coverage」から生成されないため、「jacoco-report」ターゲットが失敗します。

任意の入力、ポインタをいただければ幸いです。

前もって感謝します。

4

2 に答える 2

0

ここでサンプルプロジェクトを確認してください:https ://github.com/SonarSource/sonar-examples/tree/master/projects/code-coverage/ut/ant/ut-ant-jacoco-reuseReports

これはあなたを助けるはずです。

于 2012-10-09T10:36:56.917 に答える