Java Jenkins和Jacoco集成测试覆盖率
我刚刚在maven依赖项上添加了Jacoco来运行集成测试。然后,我创建了一个集成测试来测试我的控制器。例如,我测试了HTTP响应代码、头和响应资源。之后,我在maven上创建了一个概要文件,启动了一个嵌入式tomcat。所以,每次我想运行集成测试时,我都会将概要文件放在maven目标上。然而,当我在Jenkins上执行构建时,Sonar读取来自Jacoco的报告,报告说我没有测试我的控制器。问题是:我如何告诉Jacoco我已经通过了我的控制器、服务和存储库Java Jenkins和Jacoco集成测试覆盖率,java,maven,jenkins,jacoco,Java,Maven,Jenkins,Jacoco,我刚刚在maven依赖项上添加了Jacoco来运行集成测试。然后,我创建了一个集成测试来测试我的控制器。例如,我测试了HTTP响应代码、头和响应资源。之后,我在maven上创建了一个概要文件,启动了一个嵌入式tomcat。所以,每次我想运行集成测试时,我都会将概要文件放在maven目标上。然而,当我在Jenkins上执行构建时,Sonar读取来自Jacoco的报告,报告说我没有测试我的控制器。问题是:我如何告诉Jacoco我已经通过了我的控制器、服务和存储库 谢谢大家 您是否获得了任何集成覆盖率
谢谢大家 您是否获得了任何集成覆盖率,还是只有0%? 使用maven和Sonar设置集成测试覆盖范围可能非常棘手 检查运行IT测试时是否生成jacoco文件 检查您的POM设置与此相比
<properties>
<!-- Jacoco Properties -->
<jacoco.version>0.7.4.201502262128</jacoco.version>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.jacoco.itReportPath>${project.basedir}/target/jacoco-it.exec</sonar.jacoco.itReportPath>
<sonar.language>java</sonar.language>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<id>prepare-unit-test-agent</id>
<configuration>
</configuration>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>prepare-it-test-agent</id>
<configuration>
<propertyName>jacoco.agent.argLine</propertyName>
<destFile>${sonar.jacoco.itReportPath}</destFile>
<append>true</append>
</configuration>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<argLine>${jacoco.agent.argLine}</argLine>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
你添加的个人资料中有什么?您是否将代理传递给surefire或故障保护插件?声纳存储库中有一些例子:我得到了0%。是的,我的pom文件和你的相似!检查目标文件夹中是否有一个jacoco-it.exec文件,其中包含sonar.jacoco.itReportPath中定义的某些内容。这是Sonar将解析的内容,以获取统计信息等。查看停止Tomcat实例是否会将所有覆盖率数据刷新到jacoco-it.exec文件中。如果文件大小增加,则在进行声纳分析时尝试使用最终文件。另外,如果您在Sonar configure dashboard部分中同时使用单元测试和集成测试小部件,那么您将能够看到UT+IT组合覆盖范围。jacoco.agent.argLine变量的值是多少?