ここで、ソナー プロジェクトのユニットおよび統合テストを有効にするための指示に従いました: http://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Integration+Tests+for+Java+Project
私の pom 設定は、次の例の設定とほぼ同じです: https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/combined%20ut-it/combined- ut-it-multimodule-maven-jacoco
親 pom 設定:
<profile>
<id>code-coverage</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<append>true</append>
</configuration>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-agent-for-it</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<excludes>
<exclude>static/**/*.jar</exclude>
<exclude>static/**/*.class</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
統合テストを実行する特定のモジュールがあります。
<profile>
<id>code-coverage</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<!-- The destination file for the code coverage report has to be set to the same value
in the parent pom and in each module pom. Then JaCoCo will add up information in
the same report, so that, it will give the cross-module code coverage. -->
<destFile>${project.basedir}/../target/jacoco-it.exec</destFile>
</configuration>
</plugin>
</plugins>
</build>
</profile>
単体テストは正常に報告されていますが、統合テストは報告されていません。Bamboo ログでは、ソナーがすべてのサブモジュールで統合テストと単体テストを探していることがわかりますが、親モジュールに到達すると、JaCoCoSensor または JaCoCoItSensor は実行されません。これらのセンサーは両方とも、モジュール プロジェクトごとに実行されます。また、親プロジェクトではなく、モジュール プロジェクトごとに JaCoCoOverallSensor が実行されていることにも気付きました。
親プロジェクトで JaCoCoItSensor を実行するにはどうすればよいですか?