Maven Jacoco不制作覆盖率报告

Maven Jacoco不制作覆盖率报告,maven,jacoco,maven-surefire-plugin,jacoco-maven-plugin,Maven,Jacoco,Maven Surefire Plugin,Jacoco Maven Plugin,我使用maven sure fire插件执行测试,使用Jacoco插件生成覆盖率报告。Jacoco不提供覆盖率报告,而是使用调试日志失败,如下所示 [信息]-JacoCoMaven插件:0.8.0:报告JacoCoSite@util-- [INFO]由于缺少执行数据文件,正在跳过JaCoCo执行 以下是maven sure fire插件的外观 <plugin> <groupId>org.apache.maven.p

我使用maven sure fire插件执行测试,使用Jacoco插件生成覆盖率报告。Jacoco不提供覆盖率报告,而是使用调试日志失败,如下所示

[信息]-JacoCoMaven插件:0.8.0:报告JacoCoSite@util-- [INFO]由于缺少执行数据文件,正在跳过JaCoCo执行

以下是maven sure fire插件的外观

             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.10</version>
                <configuration>
                    <parallel>classes</parallel>
                     <threadCount>8</threadCount>
                     <forkCount>4</forkCount>
                     <encoding>UTF-8</encoding>
                    <inputEncoding>UTF-8</inputEncoding>
                    <outputEncoding>UTF-8</outputEncoding>
                    <argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
                        -Dfile.encoding=UTF-8</argLine>
                     </configuration>
            </plugin>
下面是Jacoco插件的外观

<plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.0</version>
                <configuration>
                    <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
                    <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
                </configuration>
                <executions>
                    <execution>
                        <id>jacoco-initialize</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>jacoco-site</id>
                        <phase>package</phase>
                        <goals>
                        <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
引述:

如果您的项目已经为测试执行定义了VM参数,请确保它们将包括由JaCoCo定义的属性

对于maven surefire插件,其中一种方法是使用语法进行后期属性评估:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <argLine>@{argLine} -your -extra -arguments</argLine>
  </configuration>
</plugin>
引述:

如果您的项目已经为测试执行定义了VM参数,请确保它们将包括由JaCoCo定义的属性

对于maven surefire插件,其中一种方法是使用语法进行后期属性评估:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <argLine>@{argLine} -your -extra -arguments</argLine>
  </configuration>
</plugin>

你是说我应该添加我作为sure fire插件属性的argLine?不走运,我添加了@{argLine},但仍然不起作用。你认为问题出在其他方面吗?@user4654鉴于你提供的信息量很小,我看不出还有什么其他问题。如前所述-确保考虑了属性,即使用调试输出mvn-X运行Maven,并验证surefire是否使用JaCoCo代理启动JVM。或者阅读并提供完整的示例。即使在添加@{argLine}之后,我也会遇到类似的问题,但是,如果我删除forkCount属性,我可以让jacoco创建一个报告。我不确定forkCount和jacoco之间的相互作用是什么,正确的解决方法是什么,但仅forkCount一项似乎就足以让jacoco在我的案例中不生成报告。@DanSmith在上所述,您不能使用0的forkCount其他值工作正常您的意思是我应该添加我作为sure fire plugin属性的argLine?不走运,我添加了@{argLine},但仍然不起作用。你认为问题出在其他方面吗?@user4654鉴于你提供的信息量很小,我看不出还有什么其他问题。如前所述-确保考虑了属性,即使用调试输出mvn-X运行Maven,并验证surefire是否使用JaCoCo代理启动JVM。或者阅读并提供完整的示例。即使在添加@{argLine}之后,我也会遇到类似的问题,但是,如果我删除forkCount属性,我可以让jacoco创建一个报告。我不确定forkCount和jacoco之间的交互作用是什么,以及正确的修复方法是什么,但就我的情况而言,仅forkCount一项似乎就足以使jacoco无法生成报告。@DanSmith如在上所述,您不能使用0的forkCount,其他值可以正常工作
<argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
                    -Dfile.encoding=UTF-8</argLine>
<build>
  <properties>
    <argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
                    -Dfile.encoding=UTF-8</argLine>
  </properties>
...
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.10</version>
    <configuration>
      <!-- no argLine here -->
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.10</version>
  <configuration>
    <argLine>@{argLine} -Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
                    -Dfile.encoding=UTF-8</argLine>