我有一个关于声纳预览模式下代码覆盖率的问题。

我正在尝试为我们的项目配置声纳,并探索声纳的预览和增量模式。想法是在开发人员管理的功能分支中以CI连续方式运行这些功能。
目的是在不影响我们的声纳多维数据集及其数据库的情况下,为他们提供代码质量的线索。

我看到以预览模式运行声纳时,它会以json格式生成报告,因为我坚持默认设置,因此它位于:

target\sonar\sonar-report.json

但是,此报告不包含有关代码覆盖率的任何信息,而仅包含有关违规的信息。

因此,我的问题是,在预览模式(可能是增量模式)下运行声纳时,如何包括覆盖范围信息?

互联网上有很多半正确的答案,但到目前为止我找不到可行的解决方案。

我使用最新的可用声纳立方体(5.1.2)
Maven 3.3.3是我们的构建工具。

覆盖范围是jacoco驱动的,因此我运行以下命令:

自己运行测试
mvn org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent clean install -Pcoverage-per-test

运行声纳:
mvn sonar:sonar -Dsonar.dynamicAnalysis=reuseReports -Dsonar.analysis.mode=preview -Dsonar.java.coveragePlugin=jacoco

至于“每次测试覆盖率”配置文件,我有以下配置:
<profile>
  <id>coverage-per-test</id>
  <build>
    <plugins>
      <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>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.codehaus.sonar-plugins.java</groupId>
      <artifactId>sonar-jacoco-listeners</artifactId>
      <version>1.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</profile>

我几乎是声纳世界中的新手,因此我们将不胜感激。

在此先多谢

最佳答案

我将为所有因使用预览模式搜索自己的问题而发现此问题的人添加答案:

我不认为预览模式用于记录结果,而不能用于在合并之前在功能分支上注释问题。

我在管道中处理这种情况的方式是,我们像OP一样构建模块并预先收集覆盖率数据,然后类似地,我们重用JaCoCo的报告。但是,不同之处在于我们实际上要进行预览模式分析,然后再进行完整的分析后记,因为这样做是如此之快。

08-05 18:01