Java Jacoco集成测试报告不正确
我有一个restful api,集成测试用例的工作流程是我们构建项目->然后在预定义的端口上使用maven启动tomcat->在tomcat实例上部署构建的war,然后maven运行与该war相关的集成测试用例。只有当单元和集成测试用例通过时,构建才会成功。我想为集成以及单元测试用例生成代码覆盖率报告。尽管Jacoco正确地为单元测试用例生成了报告,但它没有为集成测试用例生成正确的报告。与中一样,所有文件夹都以零覆盖率显示Java Jacoco集成测试报告不正确,java,maven,jacoco,jacoco-maven-plugin,Java,Maven,Jacoco,Jacoco Maven Plugin,我有一个restful api,集成测试用例的工作流程是我们构建项目->然后在预定义的端口上使用maven启动tomcat->在tomcat实例上部署构建的war,然后maven运行与该war相关的集成测试用例。只有当单元和集成测试用例通过时,构建才会成功。我想为集成以及单元测试用例生成代码覆盖率报告。尽管Jacoco正确地为单元测试用例生成了报告,但它没有为集成测试用例生成正确的报告。与中一样,所有文件夹都以零覆盖率显示 <plugin> <groupId>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.4.201502262128</version>
<executions>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${basedir}/target/jacoco-unit.exec</destFile>
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${basedir}/target/jacoco-unit.exec</dataFile>
<append>true</append>
</configuration>
</execution>
<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<destFile>${basedir}/target/jacoco-it.exec</destFile>
<propertyName>failsafeArgLine</propertyName>
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<includes>
</includes>
<dataFile>${basedir}/target/jacoco-it.exec</dataFile>
<outputDirectory>${basedir}/target/site/jacoco-it</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
org.jacoco
jacocomaven插件
0.7.4.201502262128
默认报告
准备包装
报告
单元前测试
配制剂
${basedir}/target/jacoco-unit.exec
surefireArgLine
单元后测试
测试
报告
${basedir}/target/jacoco-unit.exec
真的
预集成测试
预集成测试
准备代理集成
${basedir}/target/jacoco-it.exec
故障保护argline
整合后测试
验证
报告
${basedir}/target/jacoco-it.exec
${basedir}/target/site/jacoco-it
关于故障保护插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
<argLine>${failsafeArgLine}</argLine>
<skipTests>false</skipTests>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven故障保护插件
2.17
**/*IT.java
${failsafeArgLine}
假的
集成测试
验证
**/*IT.java
您的IT是否运行?他们被处决了吗?向您添加故障保护插件是否有帮助?(没有看到错误,所以我会尝试一下)。我认为“集成测试”和“验证”的目标不应该在同一阶段运行。是的,它确实在运行。但即使如此,报告也没有正确生成。我会尝试你建议的方法,并在这里更新结果。你有什么进展吗?我也面临着同样的问题。难道你不需要将failsafeArgLine变量传递给你的Jetty实例吗?不,我最终放弃了这段代码,然后使用代码,由此生成的jacoco.exec文件在Jenkins中用于显示单元和集成测试用例的代码覆盖率。只要用。。。准备代理。。。。按编写的代码编写,然后运行mvn软件包。您的软件包运行吗?他们被处决了吗?向您添加故障保护插件是否有帮助?(没有看到错误,所以我会尝试一下)。我认为“集成测试”和“验证”的目标不应该在同一阶段运行。是的,它确实在运行。但即使如此,报告也没有正确生成。我会尝试你建议的方法,并在这里更新结果。你有什么进展吗?我也面临着同样的问题。难道你不需要将failsafeArgLine变量传递给你的Jetty实例吗?不,我最终放弃了这段代码,然后使用代码,由此生成的jacoco.exec文件在Jenkins中用于显示单元和集成测试用例的代码覆盖率。只要用。。。准备代理。。。。编写代码,然后运行mvn包。