Java SonarQube中的单元测试数

Java SonarQube中的单元测试数,java,maven,sonarqube,jacoco,Java,Maven,Sonarqube,Jacoco,我有一个多模块maven项目(这不应该是相关的),配置了jacocoMaven插件。据我所知,jacoco插件负责通过生成二进制jacoco*.exec文件来分析代码。它还负责生成报告(jacoco.xml),这些报告将由Sonar通过Sonar maven插件导入 jacocomaven插件的配置如下。prepare agent和prepare agent integration目标为单元测试和集成测试设置jacoco agent。然后,merge目标创建一个jacoco.exec文件,以便在

我有一个多模块maven项目(这不应该是相关的),配置了
jacocoMaven插件
。据我所知,jacoco插件负责通过生成二进制
jacoco*.exec
文件来分析代码。它还负责生成报告(jacoco.xml),这些报告将由Sonar通过
Sonar maven插件导入

jacocomaven插件的配置如下。
prepare agent
prepare agent integration
目标为单元测试和集成测试设置jacoco agent。然后,
merge
目标创建一个
jacoco.exec
文件,以便在一个
.exec
文件中进行单元和集成测试。在
verify
阶段,
报告
目标基于合并的
jacoco.exec
文件创建
jacoco.xml

在SonarQube中,覆盖范围正在发挥作用,但单元测试的数量似乎不包括集成测试。通过这个设置,我有80%的覆盖率和54个单元测试。如果我删除
prepare agent
目标,覆盖率将下降到20%,但仍然有54个单元测试,而有5个集成测试。因此,这意味着集成测试的覆盖范围是有效的,但单元测试的数量是无效的

我的理解是SonarQube中单元测试的数量就是单元和集成测试的数量。集成测试没有专用计数器

那么SonarQube是如何计算单元测试的数量的呢?通过分析surefire报告?集成测试的类名是MyResourceIT

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.5</version>
</plugin>
<executions>
 <execution> 
  <goals>
   <goal>prepare-agent</goal>
  </goals>
  <configuration>
   <destFile>${project.build.directory}/jacoco-ut.exec</destFile>
  </configuration>
 </execution>
 <execution> 
  <id>pre-integration-prepare</id>
  <goals>
   <goal>prepare-agent-integration</goal>
  </goals>
 </execution>
 <execution> 
  <id>report</id>
  <phase>post-integration-test</phase>
  <goals>
   <goal>merge</goal>
  </goals>
  <configuration>
   <fileSets>
    <fileSet>
     <directory>${project.build.directory}</directory>
     <includes>
      <include>*.exec</include>
     </includes>
    </fileSet>
   </fileSets>
  </configuration>
 </execution>
 <execution> 
  <id>merged-report-generation</id>
  <phase>verify</phase>
  <goals>
   <goal>report</goal>
  </goals>
 </execution>
</executions>

org.jacoco

我根据在上找到的信息,得出了与您相同的结果。我当然很想知道你问题的答案,因为除了在上显示的内容外,我找不到任何可以证实或否认你怀疑的东西。我根据在上找到的信息得出了与你相同的结果。我当然很想知道你的问题的答案,因为我找不到任何东西可以证实或否认你的怀疑,除了在会议上所展示的。