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

时间:2015-09-24 10:29:44

标签: java maven sonarqube sonarqube5.1

我对声纳预览模式下的代码覆盖率有疑问。

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

我看到在预览模式下运行声纳时会生成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>

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

提前多多感谢

1 个答案:

答案 0 :(得分:0)

我会为那些因预览模式搜索自己的问题而发现此问题的人添加答案:

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

我在管道中处理这种情况的方式是我们像OP一样构建模块并预先收集覆盖数据,然后我们同样重用JaCoCo的报告。然而,差异在于我们实际上进行了预览模式分析,然后进行了全面的分析,因为它很快就可以了。