我的项目设置很简单(所有资源都可以在github上找到):
父母
?后端
?客户
?整合测试
在运行Maven之后:
mci sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=12...9
Run Code Online (Sandbox Code Playgroud)
我看到声纳可以看到单元测试和集成测试,但是IT的覆盖范围却不大。

对于Intelij IDEA来说jacoco-it.exec不错:

我假设罪魁祸首在这里:
[INFO] Sensor JaCoCoSensor [java]
[INFO] No JaCoCo analysis of project coverage can be done since there is no class files.
[INFO] Sensor JaCoCoSensor [java] (done) | time=1ms
Run Code Online (Sandbox Code Playgroud)
所以我做了一个小技巧(总之:将所有源文件复制到integration-test模块中):
<properties>
<sonar.sources>${basedir}/target/copied</sonar.sources>
</properties>
[...]
<!-- hack to generate coverage reports -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${sonar.sources}</outputDirectory>
<resources>
<resource>
<directory>${basedir}/../backend/src/main/java</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration> …Run Code Online (Sandbox Code Playgroud)