統合テストが maven-failsafe-plugin によって実行され、単体テストが maven-surefire-plugin によって実行されるプロジェクトがあります。
jacoco を使用してカバレッジ レポートを生成します。
<properties>
<coverage.reports.dir>${project.build.directory}/coverage-reports</coverage.reports.dir>
<sonar.jacoco.reportPath>${coverage.reports.dir}/jacoco-unit.exec</sonar.jacoco.reportPath>
<sonar.jacoco.itReportPath>${coverage.reports.dir}/jacoco-it.exec</sonar.jacoco.itReportPath>
</properties>
[...]
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.5.7.201204190339</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<propertyName>jacoco.agent.argLine</propertyName>
<destFile>${sonar.jacoco.itReportPath}</destFile>
<dataFile>${sonar.jacoco.itReportPath}</dataFile>
</configuration>
</plugin>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.5</version>
<configuration>
<argLine>${jacoco.agent.argLine}</argLine>
</configuration>
</plugin>
[...]
<profile>
<id>dev</id>
<properties>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
</properties>
</profile>
[...]
mvn install を実行すると、Jacoco カバレッジ レポートが正常に生成されます。
しかし、 mvn -mvn -Pdev sonar:sonar を実行すると、Sonar は Jacoco の代わりに Cobertura プラグインを使用します。
私が試してみました:
1)ソナー設定でjacocoをデフォルトのカバレッジプラグインとして設定します[動作しませんでした]
2) コマンド ラインで Jacoco パラメータを指定します (例: -Dsonar.core.codeCoveragePlugin=jacoco) [同様に機能しませんでした]
誰にもアイデアはありますか?ありがとう。
ところで、私はSonar 2.8を使用しています