Jacoco.exec未在SonarQube中显示完整的测试覆盖率

时间:2016-12-22 14:54:48

标签: maven unit-testing sonarqube jacoco surefire

我们有一个小型多模块Java Spring REST应用程序,它使用maven surefire插件构建。因为应用程序相当小,我们编写了单元测试和集成测试的混合,并将它们全部作为单元测试运行,因此我们得到一组jacoco.exec文件。

当我在SonarQube中提取测试覆盖率时,仅针对运行测试的模块计算覆盖率。因此,我们在REST控制器层中进行的集成测试不会在业务层或数据层中生成任何覆盖。

我尝试了多种配置的jacoco,我已经厌倦了盯着它。任何建议都会有所帮助。

父pom.xml中的jacoco配置:

        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.7.201606060606</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                    <execution>
                            <id>report</id>
                        <phase>prepare-package</phase>
                        <goals>
                           <goal>report</goal>
                        </goals>
                   </execution>
            </executions>
        </plugin>
父pom.xml中的

surefire配置:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <systemPropertyVariables>
                    <org.jboss.logging.provider>slf4j</org.jboss.logging.provider>
                </systemPropertyVariables>          
            </configuration>
        </plugin>

1 个答案:

答案 0 :(得分:0)

  

仅针对运行测试的模块计算覆盖率

这是在SonarQube中导入JaCoCo报告的方式。

如果您想克服这个问题,您可能希望在将报告提供给SonarQube之前合并报告。