我们在Bamboo中有一个CI设置,它运行Junit测试并使用Jacoco计算单元测试覆盖率。然后我们运行Sonar插件进行源代码分析。一切都很好,我们可以看到SonarCube服务器上的分析,包括覆盖范围,但我们希望确切地看到哪些测试覆盖了某些代码行。现在它只是说:涵盖单元测试。
有办法吗?
答案 0 :(得分:6)
我在样本声纳项目中找到了答案:https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/ut/ut-maven-jacoco。
Jacoco侦听器必须配置为surefire插件。
nnoremap <C-[> A{{{<Esc><CR>
并添加了依赖项:
<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>
最后一个封印了这笔交易