SonarQube中的单元测试数量

问题描述

我有一个使用jacoco-maven-plugin配置的多模块Maven项目(这不相关)。据我了解,jacoco插件负责通过生成二进制jacoco*.exec文件来分析代码。它还负责生成将由Sonar通过sonar-maven-plugin导入的报告(jacoco.xml)。

jacoco-maven-plugin的配置如下。 prepare-agentprepare-agent-integration目标为单元测试和集成测试设置了jacoco代理。然后,merge目标将创建一个jacoco.exec文件,以在单个.exec文件中进行单元测试和集成测试。在verify阶段,report目标基于合并的jacoco.xml文件创建jacoco.exec

在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>

来源:https://medium.com/@vareshtapadia/unit-and-integration-test-coverage-report-to-sonarqube-ca0a9a492675

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)