Как я могу сгенерировать отчет HTML для результатов Junit?
Есть ли способ (легко) создать отчет HTML, содержащий результаты тестов? В настоящее время я использую JUnit в дополнение к Selenium для тестирования пользовательских интерфейсов веб-приложений.
PS: Учитывая структуру проекта, я не должен использовать Ant: (
Ответы
Ответ 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
Ответ 6
Формат Junit xml используется вне слова Java/Maven/Ant.
Дженкинс с http://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin является решением.
Для решения с одним выстрелом я нашел этот инструмент, который выполняет задание:
https://www.npmjs.com/package/junit-viewer
junit-viewer --results=*.xml --save=file_location.html