Jacoco报告汇总-包括汇总项目的报告

时间:2018-12-31 05:17:54

标签: java maven junit jacoco jacoco-maven-plugin

我有一个多模块Maven项目。

parent
   child1
   child2
   child3-report

所有子项目都有单元测试,并且child3取决于child1child2。跟随pom的child3

<plugin>
     <groupId>org.jacoco</groupId>
     <artifactId>jacoco-maven-plugin</artifactId>
     <version>0.8.2</version>
     <executions>
        <execution>
            <id>prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report-aggregate</id>
            <phase>verify</phase>
            <goals>
                <goal>report-aggregate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

生成的jacoco汇总报告仅包括child1和child2的报告,但不包括child3的报告。该如何解决?

不想只为报告创建第四个子模块。

4 个答案:

答案 0 :(得分:0)

在为Maven项目实施Jacoco时遇到相同的问题。 不幸的是,恐怕唯一的解决方案是在Maven项目中添加一个新的子模块。 您应该将其依赖于您的3个子模块和报告汇总目标。 因此,您应该具有以下配置:

parent --> Goal: Prepare agent
   child1 --> Goal: report
   child2 --> Goal: report
   child3-report --> Goal: report
   child4-Aggregator --> Goal: report-aggregate

在父pom.xml中,应添加child4-Aggregator模块作为要运行的最后一个模块。

答案 1 :(得分:0)

我所做的是添加一个报告目标,以包括该模块本身的报告。

<execution>
  <id>report-unit-tests</id>
  <goals>
    <goal>report</goal>
  </goals>
</execution>

答案 2 :(得分:0)

在jacoco github存储库上引发了与此功能相关的多个问题(https://github.com/jacoco/jacoco/issues/812)。仅为报告使用单独的模块可能对少数人来说是可以接受的,但是更好的方法是使用一些可配置的标记来修复此问题。

还有一个待处理的PR(https://github.com/jacoco/jacoco/pull/1007)。

答案 3 :(得分:-1)

也许您可以尝试以下方法: 在child3的pom.xml中添加child3本身

<dependency>
<groupId>XXXX</groupId>
<artifactId>child3</artifactId>
</dependency>