如何使用JaCoCo或任何其他工具生成覆盖Java项目中Maven依赖项的报告?

时间:2017-07-25 06:45:15

标签: java jacoco

我的项目使用另外两个作为Maven依赖项添加到其中的库。当我使用命令提示符为项目生成覆盖率报告时,它会生成jacoco.exec文件,我可以使用它来查看IDE中的覆盖率报告。

但它并没有让我覆盖所使用的依赖项。

我在JaCoCo的Eclipse插件中看到,它提供了配置coverage的机会,并选择项目中使用的特定jar将包含在coverage报告中。

在基于命令行的执行情况下,我怎么能这样做呢?

3 个答案:

答案 0 :(得分:0)

  

我的项目使用另外两个库作为maven依赖项添加到其中。

如果这些库是同一个Maven构建的其他模块,那么请查看JaCoCo Maven插件的report-aggregate goal

  

我在JaCoCo的eclipse插件中看到,它提供了配置覆盖率的机会,并选择在项目中使用的特定jar包含在覆盖率报告中。但是在基于命令行的执行情况下如何做同样的事情?

在JaCoCo 0.7.9中有JaCoCo Ant Tasks,在0.8.0中会有JaCoCo Command Line Interface - 两者都提供了比JaCoCo Maven插件更多的自由度,特别是应该包含在报告中的内容,特别是可用于任意(例如第三方)JAR文件。可以使用maven-antrun-plugin在Maven构建中执行Ant任务。

JaCoCo APIs examples(特别是ReportGenerator.java)可用于构建您自己的报告生成器和其他集成。你提到的基于JaCoCo的Eclipse插件是Eclipse EclEmma。它使用这些API来集成到Eclipse IDE中。

答案 1 :(得分:0)

使用Codehaus插件获得更好的结果,从而生成类明智的覆盖率报告。你可以生成html和xml报告。

<project>
  ...
  <reporting>
    <plugins>
      ...
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <configuration>
          <formats>
            <format>html</format>
            <format>xml</format>
          </formats>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>

答案 2 :(得分:0)

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.5.5.201112152213</version>
  <configuration>
     <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
     <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
  </configuration>
  <executions>
     <execution>
         <excludes>
            <exclude>**/*Config.*</exclude>
            <exclude>**/*Dev.*</exclude>
     </excludes>
  </execution>
  <execution>
        <id>jacoco-site</id>
        <phase>package</phase>
        <goals>
           <goal>report</goal>
       </goals>
     </execution>
   </executions>
</plugin>

您还可以提供标签以排除代码覆盖的类,同样也可以提供标记以包含类