Подтвердить что ты не робот

Как я могу сгенерировать отчет HTML для результатов Junit?

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Отчет выглядит следующим образом: Пример

Ответ 3

Вы можете легко сделать это через ant. Вот файл 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

Ответ 4

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

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

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

pip install junit2html

Ответ 5

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

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

Класс TestWatcher JUNIT позволяет переопределять методы failed() и successed() JUNIT, которые вызываются автоматически, когда тесты JUNIT терпят неудачу или проходят.

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

  • protected void failed (Throwable e, Описание описания)

failed() метод вызывается, когда тест терпит неудачу

  • protected void finished (Описание описания)

закончен() метод вызывается, когда метод тестирования заканчивается (независимо от того, проходит ли он или не работает)

  • protected void skipped (AssumptionViolatedException e, Описание описание)
Метод

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

  • защищенный запуск void (описание описания)

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

  • protected void удалось (описание описания)

Метод successed() вызывается, когда тест преуспевает

Ниже приведен пример кода для этого случая:

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

  • maven surefire
  • aspectjweaver
  • адаптер allure

Подробнее см. примеры кода в этой статье: http://test-able.blogspot.com/2015/10/create-selenium-html-reports-with-allure-framework.html