Java 预览模式下的声纳覆盖范围
我有一个关于声纳预览模式下代码覆盖率的问题 我正在尝试为我们的项目配置sonar,并探索sonar的预览和增量模式。其想法是在我们的开发人员管理的功能分支中以连续方式在CI中运行这些功能。 我们的目标是在不影响sonarcube及其数据库的情况下,为他们提供代码质量的线索 我看到,在预览模式下运行sonar时,它会生成json格式的报告,因为我坚持默认值,它位于:Java 预览模式下的声纳覆盖范围,java,maven,sonarqube,sonarqube5.1,Java,Maven,Sonarqube,Sonarqube5.1,我有一个关于声纳预览模式下代码覆盖率的问题 我正在尝试为我们的项目配置sonar,并探索sonar的预览和增量模式。其想法是在我们的开发人员管理的功能分支中以连续方式在CI中运行这些功能。 我们的目标是在不影响sonarcube及其数据库的情况下,为他们提供代码质量的线索 我看到,在预览模式下运行sonar时,它会生成json格式的报告,因为我坚持默认值,它位于: target\sonar\sonar-report.json 但是,此报告不包含有关代码覆盖率的任何信息,仅包含有关违规的信息 所
target\sonar\sonar-report.json
但是,此报告不包含有关代码覆盖率的任何信息,仅包含有关违规的信息
所以,我的问题是,在预览和可能的增量模式下运行sonar时,如何可能包含有关覆盖范围的信息?
在互联网上有很多半正确的答案,但到目前为止我还没有找到一个有效的解决方案
我使用最新可用的声纳立方体(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>
每次测试的覆盖率
org.apache.maven.plugins
maven surefire插件
2.13
听众
org.sonar.java.jacoco.JUnitListener
org.codehaus.sonar-plugins.java
声纳jacoco监听器
1.2
测试
我是声纳领域的新手,所以任何帮助都将不胜感激
提前非常感谢我将为通过预览模式搜索自己问题而发现此问题的任何人添加一个答案: 我不相信预览模式是用来记录结果的,而只是用来在合并之前评论功能分支上的问题
我在管道中处理这个场景的方法是,我们构建模块并预先收集覆盖率数据(如OP),然后类似地重用来自JaCoCo的报告。然而,不同之处在于,我们实际上是先进行预览模式分析,然后进行全面分析,因为这样做太快了。您可以忘记dynamicAnalysis参数,它已被弃用。您能在Eclipse中的Sonarint中看到这一点吗?你有没有想过?