maven-surefire-report-plugin не собирает свою конфигурацию - PullRequest
2 голосов
/ 04 августа 2020

У меня проблема с maven-surefire-report-plugin. Я добавил несколько конфигураций reportSet в раздел отчетов моего pom.xml, и, похоже, он не улавливает эту конфигурацию.

Я был , чтобы понять , что раздел отчетов был способом go для таких плагинов, но я начинаю в этом сомневаться.

Вот мой раздел отчетов pom.xml:

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>2.22.2</version>

            <configuration>
                <linkXRef>false</linkXRef>
            </configuration>

            <reportSets>
                <reportSet>
                    <id>aggregated-unit-test-report</id>

                    <configuration>
                        <outputDirectory>${project.reporting.outputDirectory}/test-reports/ut</outputDirectory>
                    </configuration>

                    <reports>
                        <report>report-only</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

И здесь это (частично) то, что я получил, запустив mvn surefire-report:report-only -X на этом модуле:

// Cropped for brevity
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-surefire-report-plugin:3.0.0-M5:report-only' with basic configurator -->
[DEBUG]   (f) aggregate = false
[DEBUG]   (f) alwaysGenerateSurefireReport = true
[DEBUG]   (f) inputEncoding = ISO-8859-1
[DEBUG]   (f) linkXRef = true
[DEBUG]   (f) outputDirectory = C:\Users\francois.dupire\workspace\forhrm\libs\framework\coverage\target\site
[DEBUG]   (f) outputName = surefire-report
[DEBUG]   (f) project = MavenProject: be.formatech.forhrm.framework:framework-coverage:1.0.0-SNAPSHOT @ C:\Users\francois.dupire\workspace\forhrm\libs\framework\coverage\pom.xml
[DEBUG]   (f) reactorProjects = [MavenProject: be.formatech.forhrm.framework:framework-coverage:1.0.0-SNAPSHOT @ C:\Users\francois.dupire\workspace\forhrm\libs\framework\coverage\pom.xml]
[DEBUG]   (f) showSuccess = true
[DEBUG]   (f) skipSurefireReport = false
[DEBUG]   (f) xrefLocation = C:\Users\francois.dupire\workspace\forhrm\libs\framework\coverage\target\site\xref-test
[DEBUG] -- end configuration --
[WARNING] Unable to locate Test Source XRef to link to - DISABLED
// Cropped for brevity
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.976 s
[INFO] Finished at: 2020-08-04T17:24:57+02:00
[INFO] Final Memory: 13M/32M
[INFO] ------------------------------------------------------------------------

Мы ясно видим, что все не так, от начала до конца:

  • версия 3.0.0-M5, в то время как я указал 2.22.2;
  • параметр linkXRef имеет значение true вместо false;
  • выходной каталог также не изменился.

Я что-то упустил из-за того, как этот плагин должен работать?

Ответы [ 2 ]

1 голос
/ 08 августа 2020
  1. версия 3.0.0-M5, в то время как я указал 2.22.2

Вся проблема в том, что вы запускаете команду mvn surefire-report:report-only и ожидаете, что раздел reporting будет активирован . Вы ничего не сделали, но запустили плагин, и поэтому активируется раздел в build/plugins/plugin, включая версию 2.22.2, а не раздел reporting. Если вы хотите активировать раздел reporting, вам нужно запустить команду mvn site, и тогда будет сгенерирована вся страница проекта.

Если бы я был на вашем месте и хотел бы сгенерировать только Surefire отчета, то я бы использовал ту же конфигурацию в build/plugins/plugin/maven-surefire-report-plugin, что и вы сейчас в разделе reporting.

    <configuration>
        <linkXRef>false</linkXRef>
        <outputName>test-reports/ut</outputName>
    </configuration>
параметр linkXRef имеет значение true вместо false

Тот же ответ, что и в 1.

выходной каталог тоже не изменился

Правильное поведение Maven зависит от правильного чтения документации, см. ссылку . В вашем случае используйте параметр outputName вместо outputDirectory (когда linkXRef имеет значение false или замените свойство Maven по умолчанию project.reporting.outputDirectory).

0 голосов
/ 08 августа 2020

Сначала используйте mvn dependency:tree, чтобы узнать, имеет ли какой-либо другой плагин зависимость 3.0.0-M5 от maven-surefire-report-plugin. Если вы его найдете, вам, возможно, придется настроить исключение (как здесь) , чтобы заставить ваше объявление оставаться в силе. IntelliJ IDEA также может помочь вам показать, какие зависимости были подавлены как дубликаты.

Также проверьте, есть ли профиль (возможно, активный по умолчанию), который объяснил бы, почему ваша конфигурация игнорируется. Я не вижу каких-либо явных сообщений об ошибке для неправильного outputDirectory, поэтому его использование должно быть отключено. Например, как в в этом примере , проверьте свой раздел <build>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...