У меня есть многомодульный проект Maven, в котором JaCoCo не генерирует отчеты, основанные на исходных файлах.
Обычно, если MyService
- это тестируемый класс, он будет представлен двумя способами, одинчерез имя файла MyService.html
в соответствующем расположении на основе пакета со списком методов, дающих общую картину охвата в цифрах и графиках - с перечислением всех методов в классе, и каждый метод имеет интерактивную ссылку на другой HTML MyService.java.html
который содержит исходный код с красным / зеленым / желтым фоном для отображения статуса покрытия.
В моем сценарии генерируется только MyService.html
, а не MyService.java.html
, а в первом перечислены методы с деталями покрытия, но без гиперссылок на другой отчет, как показано ниже.
Проблема становится более интересной, поскольку моя конфигурация Maven не настроена в этом модуле, нов родительском модуле и другие дочерние модули могут генерировать отчеты правильно.Ниже приведена конфигурация плагина maven для справки.
Родительский POM:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<destFile>${project.basedir}/target/jacoco-unit.exec</destFile>
<dataFile>${project.basedir}/target/jacoco-unit.exec</dataFile>
<append>true</append>
</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>
Дочерний POM:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
Попытка переключения версий JaCoCo, но ни одна не помогла, теперь придерживаюсьдо последней версии 0.8.2.И Maven последний - 3.6.0.Кроме этого, другой плагин, настроенный в дочернем помпе, - это PMD, чье присутствие или отсутствие не имеет никакого значения для отчета.
Аналогичная проблема: Плагин Gradle JaCoCo - имена классов и методов не активируются в кликахотчет