我的项目使用另外两个作为Maven依赖项添加到其中的库。当我使用命令提示符为项目生成覆盖率报告时,它会生成jacoco.exec
文件,我可以使用它来查看IDE中的覆盖率报告。
但它并没有让我覆盖所使用的依赖项。
我在JaCoCo的Eclipse插件中看到,它提供了配置coverage的机会,并选择项目中使用的特定jar将包含在coverage报告中。
在基于命令行的执行情况下,我怎么能这样做呢?
答案 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>
您还可以提供标签以排除代码覆盖的类,同样也可以提供标记以包含类