Действительно, создание целого сайта при каждой сборке явно не вариант. Но проблема в том, что mvn surefire-report:report-only
не создает файлы css / *. Css, что приводит к ужасному результату. Это зарегистрировано в SUREFIRE-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
теста mojo и установите его в значение 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 - лучший вариант, вам не обязательно создавать отчеты (особенно когда тест проходит), а систематическая их генерация может замедлить сборку в долгосрочной перспективе. Я генерировал бы их «по требованию».