Есть ли приличный плагин отчета HTML Junit для Maven?

найти surefire-report плагин очень не подходит для моего рабочего стиля. Я очищаю проект все время, и я не хочу тратить 5 минут на перестройку всего сайта каждый раз, когда я хочу посмотреть тестовый отчет в своем браузере.

Если я типа mvn surefire-report:report-only, сгенерированный отчет слишком уродлив и едва читается.

то, что я ищу, - это что-то вроде задачи JUnitReport ant. Есть ли один доступный там уже?

7 ответов


действительно, создание всего сайта в каждой сборке явно не является вариантом. Но проблема в том, что mvn surefire-report:report-only не создает css/*.css файлы, следовательно, уродливый результат. Это вошло в верный-616 (это не значит, что что-то произойдет). Лично я не использую HTML-отчеты, поэтому я могу жить с этим, но это не хороший ответ, поэтому вот обходной путь, основанный на задаче ant (*sigh*):

  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <id>test-reports</id>
        <phase>test</phase>
        <configuration>
          <tasks>
            <junitreport todir="target/surefire-reports">
              <fileset dir="target/surefire-reports">
                <include name="**/*.xml"/>
              </fileset>
              <report format="noframes" todir="target/surefire-reports"/>
            </junitreport>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>ant</groupId>
        <artifactId>ant-junit</artifactId>
        <version>1.6.2</version>
      </dependency>
    </dependencies>
  </plugin>

обновление: мой первоначальный идея в том, чтобы запустить плагин в Maven-AntRun "по требованию" для создания отчетов... но это не то, что я разместил, я привязал его к test этап... Но я не думал о случае неудачных тестов (это остановит сборку и предотвратит выполнение плагина AntRun). Итак, либо:

  1. не привязывайте плагин AntRun к test фаза, переместите конфигурацию за пределы execution и звонок mvn antrun:run в командной строке для создания отчетов при необходимости.

  2. или использовать testFailureIgnore опция тестового Моджо и установите его в true в конфигурации плагина surefire:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <testFailureIgnore>true</testFailureIgnore>
      </configuration>
    </plugin>
    
  3. или это выражение из командной строки с помощью параметра-D:

    $ mvn test -Dmaven.test.failure.ignore=true
    

Я думаю, что Вариант №1 является лучшим вариантом, вы не обязательно хотите генерировать отчеты (особенно, когда тест проходит) и генерировать их систематически может замедлить стройте на долгосрочной перспективе. Я бы генерировал их "по требованию".


вот что я делаю:

# Run tests and generate .xml reports
mvn test

# Convert .xml reports into .html report, but without the CSS or images
mvn surefire-report:report-only

# Put the CSS and images where they need to be without the rest of the
# time-consuming stuff
mvn site -DgenerateReports=false

перейти к target/site / surefire-report.html для отчета.

после запуска тестов остальные два выполняются примерно за 3,5 секунды для меня.

надеюсь, что это поможет. Наслаждайтесь!


Спасибо за Паскаль, я нашел улучшенное решение, чтобы сделать то, что я хочу сделать:

<plugin>
    <!-- Extended Maven antrun plugin -->
    <!-- https://maven-antrun-extended-plugin.dev.java.net/ -->
    <groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
    <artifactId>maven-antrun-extended-plugin</artifactId>
    <executions>
      <execution>
        <id>test-reports</id>
        <phase>test</phase>
        <configuration>
          <tasks>
            <junitreport todir="target/surefire-reports">
              <fileset dir="target/surefire-reports">
                <include name="**/*.xml"/>
              </fileset>
              <report format="noframes" todir="target/surefire-reports"/>
            </junitreport>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant-junit</artifactId>
        <version>1.8.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant-trax</artifactId>
        <version>1.8.0</version>
      </dependency>
    </dependencies>
  </plugin>

эта версия использует более новую версию ant и лучше всего. Тем не менее, я до сих пор не нашел способ создать тестовый отчет при сбое тестов. Как мне это сделать?


вот как я это сделал, используя цель сайт maven-surefire: сообщить :

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.16</version>
                <configuration>
                    <showSuccess>false</showSuccess>
                    <outputDirectory>${basedir}/target/surefire-reports</outputDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <outputDirectory>${basedir}/target/surefire-reports</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

</project>

вы можете установить -Dmaven.test.failure.ignore=true для создания отчета о тестировании при сбое тестов.


создайте новую конфигурацию запуска maven и с целью =>

surefire-report:report site -DgenerateReports=false

Это может помочь вам иметь лучшее представление отчета с помощью css.


выполните следующую команду

mvn clean install surefire-report:report  

Вы можете найти отчет в ниже

{basedir}/target/site/surefire-report.html

для получения более подробной информации см. ссылку ниже

http://maven.apache.org/surefire/maven-surefire-report-plugin/usage.html