多くの道のりとエラーの後で、私はついにソナー、ジャココ、そしてバンブーが調和して一緒に働くようにすることができました。ここでプロセスを文書化しましたが、ソリューションをここにコピーして、常に利用できるようにします。
私のアプリケーションでは、実際にソナーランナータスクを使用しました。ソナーランナーをインストールして構成するためのより明確な手順がありますが、これはインストールガイドには記載されていません。まず、sonar-runnerをインストールし、sonar-runner.propertiesで次のプロパティを指定する必要があります。
#----- Default Sonar server
sonar.host.url=http://localhost:9000
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
#sonar.jdbc.driver=org.postgresql.Driver
#----- Global database settings
sonar.jdbc.username=user
sonar.jdbc.password=passwd
上部のAntビルドスクリプトにjacocoxmlnsを含めます。
<project basedir="." default="build" name="project" xmlns:jacoco="antlib:org.jacoco.ant">
<property environment="env" />
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="libs/independent/jacocoant.jar"/>
</taskdef>
次に、Antビルドスクリプトにjacocoカバレッジを追加する必要があります。
<jacoco:coverage enabled="${tests.code.coverage}" destfile="${jacoco.exec.dest}">
<junit fork="yes" printsummary="withOutAndErr" dir="${tests.working.dir}">
...
最後に、jacocoの結果を使用し、ビルドで生成されたレポートを再利用するように、竹からソナーに指示する必要があります。これを行うには、Bambooジョブのソナー分析用にタスク構成の「カスタム追加パラメーター」に次のプロパティを追加します。次のオプションを構成します。
-DbuildNumber=${bamboo.buildNumber}
-Dsonar.core.codeCoveragePlugin=jacoco
-Dsonar.jacoco.reportPath=tests/jacoco-exec/jacoco.exec
-Dsonar.dynamicAnalysis=reuseReports
-Dsonar.surefire.reportsPath=tests/test-reports
これらすべてを構成すると、テストカバレッジがソナーに表示され始め、#成功したテストがリストされます。
単体テストから生成されたレポートを再利用するように、sunfireプロパティを設定してください。そうしないと、レポートを再利用するように指示しても、ソナーはそれらを見つける場所を知りません。それがあなたの次の試みに役立つことを願っています。