预览模式下的声纳覆盖范围

Mar*_*nik 8 java maven sonarqube sonarqube5.1

我对声纳预览模式中的代码覆盖有疑问.

我正在尝试为我们的项目配置声纳并探索声纳的预览和增量模式.我们的想法是在我们的开发人员管理的功能分支中以连续的方式在CI中运行它们.目标是给他们一个代码质量的线索,而不会压倒我们的sonarcube和它的数据库.

我看到当在预览模式下运行声纳时,它会生成一个json格式的报告,因为我坚持默认值,它位于:

target\sonar\sonar-report.json
Run Code Online (Sandbox Code Playgroud)

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

所以,我的问题是,在预览和可能的增量模式下运行声纳时,如何包含有关覆盖范围的信息?

在互联网上有很多半正确的答案,但到目前为止我找不到一个有效的解决方案.

我使用最新的声纳立方体(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
Run Code Online (Sandbox Code Playgroud)

用于运行声纳:

mvn sonar:sonar -Dsonar.dynamicAnalysis=reuseReports -Dsonar.analysis.mode=preview -Dsonar.java.coveragePlugin=jacoco
Run Code Online (Sandbox Code Playgroud)

至于每测试覆盖率配置文件,我有以下配置:

<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>
Run Code Online (Sandbox Code Playgroud)

我几乎是声纳世界的新手,所以任何帮助都会受到赞赏.

非常感谢提前

Mor*_*sUK 0

我将为通过预览模式搜索自己的问题而发现此问题的任何人添加答案:

我不认为预览模式旨在记录结果,而是用于在合并等之前评论功能分支上的问题。

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