Генерация вывода html surefire test html на этапе тестирования

Я не уверен, что это простой вопрос или нет, но я бы хотел, чтобы на этапе тестирования генерировались выходные файлы в формате html (в дополнение к файлам вывода в формате xml и txt).

Я попытался сделать это, добавив запись «выполнения» для build> surefire. Это правильное место для этого? Если да, то я делаю это неправильно?

<build>
  ..
  <plugins>
    ..
    <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <outputDirectory>site</outputDirectory>

                </configuration>
                <executions>
                    <execution>
                        <id>during-tests</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin> 

person Michael Kohout    schedule 29.10.2010    source источник


Ответы (1)


Я бы хотел, чтобы уверенный генерировал выходные файлы в формате html (в дополнение к выходным файлам в формате xml и txt) на этапе тестирования.

Самый простой способ (без запуска site) - это, вероятно, просто вызвать:

mvn surefire-report:report

Это запустит тесты перед генерацией отчета (но результат не очень хороший, потому что CSS не будет сгенерирован, для этого вам нужно будет запустить site).

Я попытался сделать это, добавив запись «выполнения» для build> surefire. Это правильное место для этого? Если да, то я делаю это неправильно?

Если вы действительно хотите связать плагин surefire-report с фазой test, я предлагаю использовать цель report-only (поскольку она не будет повторно запускать тесты, см. SUREFIRE-257), например:

<plugins>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-report-plugin</artifactId>
  <version>2.6</version>
  <executions>
    <execution>
      <phase>test</phase>
      <goals>
        <goal>report-only</goal>
      </goals>
    </execution>
  </executions>
</plugin>

В качестве примечания, создание отчета как части сайта:

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.6</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>report-only</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

И бег

mvn test site

кажется, не намного медленнее (я использовал Maven 3 только с этим отчетом) и дает гораздо более приятный результат. Это может быть не вариант, если у вас сложная настройка сайта (по крайней мере, без усложнения путем введения профилей).

Связанный вопрос

person Pascal Thivent    schedule 29.10.2010
comment
Спасибо за ваш ответ. Я не сомневаюсь, что ваш ответ правильный, но он почему-то не записывает его на диск. Мне нужно будет еще немного отладить, когда у меня будет возможность. - person Michael Kohout; 02.11.2010
comment
mvn surefire-report:report фактически запускается на этапе сайта. Это означает полную перестройку (поскольку сайт не является частью общего жизненного цикла), если вы пытаетесь создать отчеты для тестирования цикла выпуска: развертывания. Но deploy:release может натолкнуться на poms, и тогда все станет немного капризным :-) - person JeeBee; 19.04.2016