【发布时间】:2016-06-06 16:37:38
【问题描述】:
我们在 Bamboo 中有一个 CI 设置,它运行 Junit 测试并使用 Jacoco 计算单元测试覆盖率。然后我们运行 Sonar 插件进行源代码分析。一切都很好,我们可以在 SonarCube 服务器上看到分析,包括覆盖率,但我们想确切地看到哪些测试覆盖了特定的代码行。现在它只是说:被单元测试覆盖。
有没有办法做到这一点?
【问题讨论】:
标签: java junit sonarqube bamboo jacoco
我们在 Bamboo 中有一个 CI 设置,它运行 Junit 测试并使用 Jacoco 计算单元测试覆盖率。然后我们运行 Sonar 插件进行源代码分析。一切都很好,我们可以在 SonarCube 服务器上看到分析,包括覆盖率,但我们想确切地看到哪些测试覆盖了特定的代码行。现在它只是说:被单元测试覆盖。
有没有办法做到这一点?
【问题讨论】:
标签: java junit sonarqube bamboo jacoco
我在示例声纳项目中找到了答案:https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/ut/ut-maven-jacoco。
必须为 surefire 插件配置 Jacoco 侦听器。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- Minimal supported version is 2.4 -->
<version>2.13</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>org.sonar.java.jacoco.JUnitListener</value>
</property>
</properties>
</configuration>
</plugin>
并添加依赖项:
<dependency>
<groupId>org.sonarsource.java</groupId>
<artifactId>sonar-jacoco-listeners</artifactId>
<version>3.8</version>
<scope>test</scope>
</dependency>
声纳插件还需要以下参数的某种组合:
sonar.java.surefire.reportspath
sonar.junit.reportsPath
sonar.tests=src/test
最后一个达成交易
【讨论】: