Есть ли приличный плагин отчета 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). Итак, либо:
не привязывайте плагин AntRun к
test
фаза, переместите конфигурацию за пределыexecution
и звонокmvn antrun:run
в командной строке для создания отчетов при необходимости.-
или использовать
testFailureIgnore
опция тестового Моджо и установите его в true в конфигурации плагина surefire:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin>
-
или это выражение из командной строки с помощью параметра-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