Существует ли достойный HTML, Junit сообщают о плагине для Знатока?

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

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

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

36
задан Muhammad Hewedy 23 September 2016 в 14:54
поделиться

3 ответа

Действительно, генерировать весь сайт при каждой сборке - явно не вариант. Но проблема в том, что 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>

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

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

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

    
     org.apache.maven.plugins
     maven-surefire-plugin
     <конфигурация>
     true
     
    
    
  3. или установить это выражение из командной строки с помощью параметра -D:

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

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

27
ответ дан 27 November 2019 в 05:27
поделиться

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

<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, и что лучше всего. Однако я до сих пор не нашел способ сгенерировать отчет о тестировании, когда тесты не проходят. Как мне это сделать?

4
ответ дан 27 November 2019 в 05:27
поделиться

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

2
ответ дан 27 November 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: