Java 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>

我有一个restful api,集成测试用例的工作流程是我们构建项目->然后在预定义的端口上使用maven启动tomcat->在tomcat实例上部署构建的war,然后maven运行与该war相关的集成测试用例。只有当单元和集成测试用例通过时,构建才会成功。我想为集成以及单元测试用例生成代码覆盖率报告。尽管Jacoco正确地为单元测试用例生成了报告,但它没有为集成测试用例生成正确的报告。与中一样,所有文件夹都以零覆盖率显示

<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包。