我手头有以下任务:
- 查找项目的IT代码覆盖率
鉴于情况:
- IT代码驻留在与实际生产代码
分开的存储库中- 为多个git存储库创建测试的生产代码。
- 所有上述内容都使用maven并用Java编写。
我尝试过不同的教程和博客,但无法找到更简单的答案。
任何人都可以向我指出正确的资源或者给我一些启动提示吗?
答案 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>