SonarQube Jacoco离线仪器在Maven多模块项目中显示0%的覆盖率

Pradeep Charan

我正在使用Jacoco离线工具,因为我已经在测试用例中使用了PowerMockito。我的是Maven多模块项目。我正在使用PowerMockito 1.65我的SonarQube版本是6.7

JaCoCo在每个模块中生成HTML文件,但是在SonarQube中显示为0%

我的父母pom.xml

<properties>
    <sonar.version>6.7</sonar.version>
    <sonar-java.version>4.2</sonar-java.version>
    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
</properties>

<dependencies>
    <dependency>
        <groupId>org.sonarsource.sonarqube</groupId>
        <artifactId>sonar-plugin-api</artifactId>
        <version>${sonar.version}</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.sonarsource.java</groupId>
        <artifactId>sonar-java-plugin</artifactId>
        <version>5.0.1.12818</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jacoco</groupId>
        <artifactId>org.jacoco.agent</artifactId>
        <classifier>runtime</classifier>

        <version>0.7.9</version>
    </dependency>

    <dependency>
        <groupId>org.sonarsource.java</groupId>
        <artifactId>sonar-jacoco-listeners</artifactId>
        <version>4.9.0.9858</version>
        <scope>test</scope>
    </dependency>

</dependencies>

<build>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <systemPropertyVariables>
                    <jacoco-agent.destfile>${project.build.directory}/coverage.exec</jacoco-agent.destfile>
                </systemPropertyVariables>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>2.6.1</version>
        </plugin>

    </plugins>
</build>
<profiles>
    <profile>
        <id>sonar-coverage</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>

            <plugins>


                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <configuration>
                        <append>true</append>
                    </configuration>
                    <executions>
                        <execution>
                            <id>default-instrument</id>
                            <goals>
                                <goal>instrument</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-restore-instrumented-classes</id>

                            <goals>
                                <goal>restore-instrumented-classes</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-report</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>report</goal>

                            </goals>
                            <configuration>
                                <dataFile>${project.build.directory}/coverage.exec</dataFile>
                            </configuration>
                        </execution>

                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
<modules>
    <module>module1</module>
    <module>module2</module>
</modules>

使用命令运行 clean install test sonar:sonar

JaCoCo报告 在此处输入图片说明

SonarQube报告 在此处输入图片说明

mu

如果更改Maven jacoco插件的coverage文件的默认文件位置为

${project.build.directory}/jacoco.exec

您还需要告诉声纳插件在哪里找到。Sonar对该插件使用了很多属性,jacoco报告文件应为:sonar.jacoco.reportPaths一旦声纳插件查找到正确的位置,它便可以工作。请注意,要计算覆盖声纳,请同时使用覆盖文件和已编译的类。

附带说明:您执行mvn clean install test sonar:sonar该操作有点多余,因为测试是安装之前的一个阶段,安装将执行相同的操作。请参阅Maven生命周期但这并不重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SonarQube + Maven + JaCoCo + GitLab CI:Sonar升级到SonarQube 7.9.2后开始显示0%的代码覆盖率

使用TeamCity将Jacoco覆盖率报告提供给SonarQube,但覆盖率显示为0%

SonarQube Analysis显示代码覆盖率0

SonarQube。无法显示代码覆盖率

SonarQube如何通过JaCoCo计算覆盖率?

如何使用JaCoCo Maven插件排除SonarQube的代码覆盖率文件

Maven SonarQube多模块

多模块项目中Arquillian的Jacoco代码覆盖率

跨模块的代码覆盖率在gradle这个mutlimodule项目Jacoco离线仪器仪表

Jacoco Maven多模块项目覆盖率

SonarQube 6.0获得项目特定版本的代码覆盖率

代码覆盖率:Cobertura和SonarQube 5.3 Maven集成

Sonarqube在运行后未显示代码覆盖率

SonarQube没有显示openclover覆盖率报告

Sonarqube在React JS中的覆盖率为0%

SonarQube没有显示Ruby on Rails项目的测试代码覆盖率

SonarQube 测试覆盖率 .NET 5

VSTS的SonarQube代码覆盖率

SonarQube如何计算总覆盖率?

SonarQube:JaCoCo的多模块gradle项目的覆盖范围不完整

Gradle多模块项目中的sonarqube 6.2中错误的覆盖范围计算

SonarQube排除Maven模块

如何使用新的Gradle SonarQube插件向Sonar报告Jacoco Groovy代码覆盖率?

在Maven项目中分析TypeScript SonarQube

SonarQube的多模块项目分析

SonarQube在多模块项目上的报道

SonarQube没有提高Cobertura的代码覆盖率

SonarQube:在覆盖率报告期间忽略文件

如何在 Sonarqube 中获得新的代码覆盖率?