Sonarqube 声纳单元测试覆盖范围被破坏

Sonarqube 声纳单元测试覆盖范围被破坏,sonarqube,Sonarqube,我们将Sonar从3.7.x版升级到4.1.2版和4.3.2版,发现单元测试覆盖范围被破坏 单元测试覆盖率%字段为空,而单元测试成功率显示为100% 对于测试,我设置了一个声纳测试实例3.7.4版,报告运行良好 有什么想法吗?几个月后:-)我也有同样的想法-现在看来您需要明确设置覆盖范围(集成测试的故障保护插件总是这样) 最简单的方法是在声纳配置文件中使用jacoco maven插件,然后将surefire/failsafe插件保持正常(即,不要在声纳配置文件中覆盖)。注;如果您在任一插件中使用

我们将Sonar从3.7.x版升级到4.1.2版和4.3.2版,发现单元测试覆盖范围被破坏

单元测试覆盖率%字段为空,而单元测试成功率显示为100%

对于测试,我设置了一个声纳测试实例3.7.4版,报告运行良好

有什么想法吗?

几个月后:-)我也有同样的想法-现在看来您需要明确设置覆盖范围(集成测试的故障保护插件总是这样)

最简单的方法是在声纳配置文件中使用jacoco maven插件,然后将surefire/failsafe插件保持正常(即,不要在声纳配置文件中覆盖)。注;如果您在任一插件中使用argLine来处理其他内容,那么将其指定为。只需在单元和集成中添加以下内容:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.2.201409121644</version>
    <executions>
        <execution>
            <id>default-prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>default-prepare-agent-integration</id>
            <goals>
                <goal>prepare-agent-integration</goal>
            </goals>
        </execution>
    </executions>
</plugin>

org.jacoco
jacocomaven插件
0.7.2.201409121644
默认准备代理
配制剂
默认准备代理集成
准备代理集成

不太有利的选择

我首先使用了与以前使用failsafe(使用argLine和对jacoco的依赖)相同的有点笨拙的方式来实现单元覆盖,包括:


0.7.2.201409121644
${project.basedir}/target/report/jacoco-unittest.exec
${project.basedir}/target/report/jacoco-integrationtest.exec
以及:


org.apache.maven.plugins
maven surefire插件
2.16
-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${version.jacoco}/org.jacoco.agent-${version.jacoco}-runtime.jar=destfile=${sonar.jacoco.reportPath}
假的
假的
**/*IntegrationTest.java
**/*Test.java
org.jacoco
org.jacoco.agent
${version.jacoco}
运行时
假的
测试
<properties>
    <version.jacoco>0.7.2.201409121644</version.jacoco>
    <sonar.jacoco.reportPath>${project.basedir}/target/report/jacoco-unittest.exec</sonar.jacoco.reportPath>
    <sonar.jacoco.itReportPath>${project.basedir}/target/report/jacoco-integrationtest.exec</sonar.jacoco.itReportPath>
</properties>   
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.16</version>
    <configuration>
        <argLine>-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${version.jacoco}/org.jacoco.agent-${version.jacoco}-runtime.jar=destfile=${sonar.jacoco.reportPath}</argLine>
        <parallel>false</parallel>
        <testFailureIgnore>false</testFailureIgnore>
        <excludes>
            <exclude>**/*IntegrationTest.java</exclude>
        </excludes>
        <includes>
            <include>**/*Test.java</include>
        </includes>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.jacoco</groupId>
            <artifactId>org.jacoco.agent</artifactId>
            <version>${version.jacoco}</version>
            <classifier>runtime</classifier>
            <optional>false</optional>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <goals>
                <goal>test</goal>
            </goals>
        </execution>
    </executions>
</plugin>