Статьи

Отчеты о тестировании HTML лучше для TestNG с ReportNG — руководство Maven

TestNG — это инфраструктура тестирования, созданная как альтернатива JUnit 3, основанная на аннотациях, во времена, когда «extends TestCase» был неотъемлемой частью написания тестов. Даже сейчас он предоставляет некоторые интересные функции, такие как поставщики данных, параллельные тесты или группы тестов. В ситуации, когда наши тесты не выполняются из IDE, часто полезно взглянуть на результат теста в отчете HTML. Оригинальный отчет TestNG выглядит … сырым. Более того, они не очень понятны и понятны. Есть альтернатива — ReportNG . Он предоставляет более привлекательные и более понятные отчеты о тестировании HTML.

Более подробную информацию о ReportNG можно найти на его веб-странице , но когда я попытался использовать библиотеку AppInfo в сборках Maven, работающих с CI-сервера, у меня возникла проблема, чтобы быстро найти какое-либо руководство по его использованию с Maven. К счастью, есть примеры для Ant и Gradle, поэтому я смог разобраться в этом, но я надеюсь, что с этим постом все желающие использовать ReportNG с Maven смогут достичь этого без каких-либо проблем в течение нескольких минут.

Во-первых, в pom.xml необходимо добавить дополнительную зависимость:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<dependencies>
    <dependency>
        <groupId>org.uncommons</groupId>
        <artifactId>reportng</artifactId>
        <version>1.1.2</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    (...)
</dependencies>

Обычно в нашем проекте используется более новая версия TestNG, поэтому зависимость ReportNG должна быть исключена.

Далее необходимо настроить плагин Surefire:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <properties>
                    <property>
                        <name>usedefaultlisteners</name>
                        <value>false</value>
                    </property>
                    <property>
                        <name>listener</name>
                        <value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
                    </property>
                </properties>
                <workingDirectory>target/</workingDirectory>
            </configuration>
        </plugin>
        (...)
    </plugins>
</build>

ReportNG использует двух репортеров, подключаемых к TestNG. JUnitXMLReporter генерирует XML-сводку запущенных тестов. Он используется для инструментов (например, CI-сервер). HTMLReporter создает удобочитаемый отчет HTML. По умолчанию прослушиватели TestNG должны быть отключены.

После пробного запуска я добавил также свойство workingDirectory, которое приводит к тому, что speed.log (файл, созданный движком Velocity, который используется внутри ReportNG) помещается в целевой каталог вместо основного каталога проекта (и поэтому удаляется командой «mvn clean»).

Еще кое-что. К сожалению, jar ReportNG недоступен в центральном репозитории Maven, поэтому может потребоваться добавить репозиторий java.net в файл settings.xml.

1
2
3
4
5
6
7
<repositories>
    <repository>
        <id>java-net</id>
        <url>http://download.java.net/maven/2</url>
    </repository>
    (...)
</repositories>

Это все. Теперь «mvn clean test» должен сгенерировать красивый HTML-отчет для множества тестов, охватывающих наш проект.

Ссылка: лучше смотреть отчеты о тестировании HTML для TestNG с ReportNG — руководство Maven от нашего партнера по JCG Марцина Заячковского в блоге Solid Soft .