使用声纳进行IT代码覆盖

时间:2016-03-09 12:07:20

标签: maven sonarqube integration-testing jacoco

我手头有以下任务:

- 查找项目的IT代码覆盖率

鉴于情况:

- IT代码驻留在与实际生产代码

分开的存储库中

- 为多个git存储库创建测试的生产代码。

- 所有上述内容都使用maven并用Java编写。

我尝试过不同的教程和博客,但无法找到更简单的答案。

任何人都可以向我指出正确的资源或者给我一些启动提示吗?

1 个答案:

答案 0 :(得分:0)

我会尽力回答。我将使用UT发布示例(IT在maven livecycle build中不是同一个地方,而不是surefire插件,而是故障安全插件)

假设我们使用JaCoCo作为代码覆盖代理。 在我的父pom中,在配置文件部分(它是一个多模块项目)

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.15</version>
                    <configuration>
                        <argLine>${surefireArgLine}</argLine>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.4.201502262128</version>
                    <executions>
                        <execution>
                            <id>pre-unit-test</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                            <configuration>
                                <destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
                                <propertyName>surefireArgLine</propertyName>
                            </configuration>
                        </execution>
                        <execution>
                            <id>post-unit-test</id>
                            <phase>test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                            <configuration>
                                <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
                                <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

现在,当我们构建maven项目时,我们添加了配置文件以注入JaCoCo代理

clean install -Psonar-coverage 

然后我们可以告诉声纳分析我们的项目并使用以下命令使用JaCoCo报告

mvn org.codehaus.mojo:sonar-maven-plugin:2.4:sonar -Dsonar.dynamicAnalysis=reuseReports -Dsonar.java.coveragePlugin=jacoco -Dsonar.forceAnalysis=true -Dsonar.jacoco.reportMissing.force.zero=true -Dsonar.binaries=target/classes -Dsonar.junit.reportsPath=target/surefire-reports -Dsonar.jacoco.reportPath=target/coverage-reports/jacoco-ut.exec -Dsonar.jdbc.driver=com.mysql.jdbc.Driver -Dsonar.jdbc.url=jdbc:<YOUR SONAR INSTALLATION DB> -Dsonar.host.url=<YOUR SONAR INSTALLATION>