Jacoco report-aggregate - Включить отчет о совокупном проекте

У меня есть мультимодульный проект Maven.

parent
   child1
   child2
   child3-report

Все дочерние проекты имеют модульные тесты, и child3 зависит от child1 а также child2, За помпой для ребенка3

<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. Как это исправить?

Не хочу создавать четвертый субмодуль только для отчетов.

5 ответов

В репозитории jacoco github, связанных с этой функцией, возникло несколько проблем (https://github.com/jacoco/jacoco/issues/812). Наличие отдельного модуля только для отчетов может быть приемлемым для некоторых, но лучше было бы исправить это с помощью настраиваемого флага.

Также есть ожидающий PR (https://github.com/jacoco/jacoco/pull/1007).

Что я сделал, так это добавил цель отчета, чтобы включить отчет самого модуля.

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

Я столкнулся с той же проблемой при реализации Jacoco для проекта Maven. К сожалению, я боюсь, что единственным решением является добавление нового дочернего модуля в проект 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 в качестве последнего модуля, который будет запущен.

Упомянутый PR @sidgate объединен. Теперь вы можете настроить его в maven следующим образом:

      <plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>report-aggregate</id>
            <goals>
                <goal>report-aggregate</goal>
            </goals>
            <phase>verify</phase>
            <configuration>
                <includeCurrentProject>true</includeCurrentProject>
            </configuration>
        </execution>
    </executions>
</plugin>

Обратите также внимание на документацию .

Может быть, вы можете попробовать это: добавить самого child3 в pom.xml child3

<dependency>
<groupId>XXXX</groupId>
<artifactId>child3</artifactId>
</dependency>
Другие вопросы по тегам