В настоящее время при запуске тестов в Quarkus (./mvnw test
) генерируется отчет JacoCo. Однако при открытии target/jacoco-report/index.html
тег h1
заполняется первым тестовым классом, который запускается вместо имени проекта.
artifactId
не используется?PS: в jacoco.xml
это <report name = ""></report>
Да, я использую расширение Quarkus JaCoCo quarkus-jacoco (использование по умолчанию. Ничего особенного или сложного)
В экосистеме Quarkus есть два способа измерения покрытия кода с помощью JaCoCo.
Согласно документации
Это расширение Quarkus заботится обо всем, что обычно делается с помощью плагина JaCoCo Maven...
Однако это правда, что JaCoCo может настраиваться немного иначе, чем jacoco-maven-plugin
.
Чтобы настроить корневой узел отчета, просто добавьте это расширение в pom.xml
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jacoco</artifactId>
<scope>test</scope>
</dependency>
и установите это свойство конфигурации в application.properites
quarkus.jacoco.title=My Awesome Project's coverage report
Дополнительные параметры конфигурации доступны здесь.
jacoco-maven-plugin
Этот плагин Maven имеет свойство конфигурации title
для настройки корневого имени отчета.
Согласно цели документации
Значение по умолчанию: ${project.name}.
И ${project.name}
также имеет значение по умолчанию: ${project.artifactId}
.
Итак, чтобы настроить (переопределить) корневое имя отчета, используйте jacoco-maven-plugin
pom.xml
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.acme</groupId>
<artifactId>code-with-quarkus</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>My Awesome Quarkus App</name>
</project>
или
jacoco-maven-plugin
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<exclClassLoaders>*QuarkusClassLoader</exclClassLoaders>
<append>true</append>
</configuration>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
<phase>test</phase>
<configuration>
<title>Here comes an overridden title</title>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Спасибо за ответ. Тогда мой единственный вопрос будет заключаться в том, почему quarkus.jacoco.title
по умолчанию не имеет значение project.name
(для согласованности по умолчанию установлено значение project.artifactId`). Может быть, это можно предложить команде Quarkus?
Пожалуйста, обновите вопрос и уточните, как вы используете JaCoCo. Используете ли вы расширение Quarkus или плагин JaCoCo Maven? Лучше всего подойдет прикрепленный pom.xml.