Как создать отчет в формате HTML для результатов Junit? - PullRequest
37 голосов
/ 05 марта 2010

Есть ли способ (легко) создать HTML-отчет, содержащий результаты тестов? В настоящее время я использую JUnit в дополнение к Selenium для тестирования пользовательского интерфейса веб-приложений.

PS: Учитывая структуру проекта, я не должен использовать Ant: (

Ответы [ 6 ]

13 голосов
/ 03 июня 2010

В качестве альтернативы для тех, кто использует инструмент сборки Maven, существует плагин под названием Surefire Report .

Отчет выглядит так: Образец

13 голосов
/ 08 марта 2010

Если вы могли бы использовать Ant, тогда вы просто использовали бы задачу JUnitReport, как описано здесь: http://ant.apache.org/manual/Tasks/junitreport.html,, но вы упомянули в своем вопросе, что вы не должны использовать Ant. Я считаю, что эта задача просто преобразует отчет XML в HTML, поэтому было бы целесообразно использовать любой процессор XSLT для создания аналогичного отчета.

Кроме того, вы можете переключиться на использование TestNG (http://testng.org/doc/index.html), которое очень похоже на JUnit, но имеет отчет по умолчанию HTML, а также несколько других интересных функций.

11 голосов
/ 21 июня 2016

Мне показалось, что приведенные выше ответы весьма полезны, но не имеют общего назначения, все они нуждаются в какой-то другой основной системе сборки, такой как Ant или Maven.

Я хотел создать отчет с помощью простой однократной команды, которую я мог бы вызывать из чего угодно (из сборки, теста или просто из себя), поэтому я создал junit2html, который можно найти здесь: https://github.com/inorton/junit2html

Вы можете установить его, выполнив:

pip install junit2html
11 голосов
/ 23 января 2015

Вы можете легко сделать это через муравья. Вот файл build.xml для этого

 <project name="genTestReport" default="gen" basedir=".">
        <description>
                Generate the HTML report from JUnit XML files
        </description>

        <target name="gen">
                <property name="genReportDir" location="${basedir}/unitTestReports"/>
                <delete dir="${genReportDir}"/>
                <mkdir dir="${genReportDir}"/>
                <junitreport todir="${basedir}/unitTestReports">
                        <fileset dir="${basedir}">
                                <include name="**/TEST-*.xml"/>
                        </fileset>
                        <report format="frames" todir="${genReportDir}/html"/>
                </junitreport>
        </target>
</project>

Это позволит найти файлы в формате TEST - *. Xml и сгенерировать отчеты в папку с именем unitTestReports.

Для запуска этого (при условии, что указанный выше файл называется buildTestReports.xml) выполните в терминале следующую команду:

ant -buildfile buildTestReports.xml
6 голосов
/ 08 августа 2016

Формат Junit xml используется вне слова Java / Maven / Ant. Дженкинс с http://wiki.jenkins -ci.org / display / JENKINS / xUnit + Plugin - это решение.

Для одноразового решения я нашел этот инструмент, который выполняет свою работу: https://www.npmjs.com/package/junit-viewer

junit-viewer --results=surefire-reports --save=file_location.html

--results= - каталог с файлами xml (протоколы испытаний)

3 голосов
/ 23 октября 2015

Для создания отчетов HTML для сценариев Selenium WebDriver доступно несколько параметров.

1. Используйте класс JUNIT TestWatcher для создания собственных отчетов Selenium HTML

Класс JUNIT TestWatcher позволяет переопределять методы JUNIT fail () и successeded (), которые вызываются автоматически при сбое или прохождении тестов JUNIT.

Класс TestWatcher JUNIT позволяет переопределять следующие методы:

  • защищенный пробел не удалось (Throwable e, описание описания)

метод fail () вызывается при сбое теста

  • защищенная пустота закончена (описание описания)

метод done () вызывается по завершении метода тестирования (независимо от того, пройден он или нет)

  • защищенная пустота пропущена (AssumpViolatedException e, Описание описание)

Метод skipped () вызывается, когда тест пропускается из-за ошибочного предположения.

  • запуск в защищенном пустом пространстве (описание описания)

метод start () вызывается, когда начинается тест

  • защищенная пустота успешно (Описание описания)

метод successeded () вызывается при успешном выполнении теста

См. Пример кода для этого случая:

import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class TestClass2 extends WatchManClassConsole {

    @Test public void testScript1() {
        assertTrue(1 < 2); >
    }

    @Test public void testScript2() {
        assertTrue(1 > 2);
    }

    @Test public void testScript3() {
        assertTrue(1 < 2);
    }

    @Test public void testScript4() {
        assertTrue(1 > 2);
    }
}

import org.junit.Rule; 
import org.junit.rules.TestRule; 
import org.junit.rules.TestWatcher; 
import org.junit.runner.Description; 
import org.junit.runners.model.Statement; 

public class WatchManClassConsole {

    @Rule public TestRule watchman = new TestWatcher() { 

        @Override public Statement apply(Statement base, Description description) { 
            return super.apply(base, description); 
        } 

        @Override protected void succeeded(Description description) { 
            System.out.println(description.getDisplayName() + " " + "success!"); 
        } 

        @Override protected void failed(Throwable e, Description description) { 
            System.out.println(description.getDisplayName() + " " + e.getClass().getSimpleName()); 
        }
    }; 
}

2. Используйте структуру отчетности Allure

Платформа Allure может помочь в создании отчетов HTML для ваших проектов Selenium WebDriver.

Система отчетности очень гибкая и работает со многими языками программирования и системами модульного тестирования.

Вы можете прочитать все об этом на http://allure.qatools.ru/.

Вам понадобятся следующие зависимости и плагины для добавления в файл pom.xml

  1. Maven Верный
  2. aspectjweaver
  3. allure адаптер

См. Более подробную информацию, включая примеры кода в этой статье: http://test -able.blogspot.com / 2015/10 / создать-селен HTML-отчеты-с-очарование-framework.html

...