Jak mogę wygenerować raport HTML dla wyników Junit?

Czy jest sposób na (łatwe) wygenerowanie raportu HTML zawierającego wyniki testów ? Obecnie używam JUnit oprócz Selenium do testowania interfejsu aplikacji internetowych.

PS: biorąc pod uwagę strukturę projektu nie powinienem używać Ant : (

Author: martin clayton, 2010-03-05

6 answers

Jeśli mógłbyś użyć Ant, wtedy po prostu użyłbyś zadania JUnitReport, jak opisano tutaj: http://ant.apache.org/manual/Tasks/junitreport.html , ale wspomniałeś w swoim pytaniu, że nie powinieneś używać Ant. Uważam, że task jedynie przekształca raport XML w HTML, więc możliwe byłoby użycie dowolnego procesora XSLT do wygenerowania podobnego raportu.

Alternatywnie możesz przełączyć się na TestNG ( http://testng.org/doc/index.html ), która jest bardzo podobny do JUnit, ale ma domyślny raport HTML, a także kilka innych fajnych funkcji.

 12
Author: Dave Hunt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-30 23:48:40

Alternatywnie dla tych, którzy używają Maven build tool, istnieje plugin o nazwie Surefire Report .

Raport wygląda tak: Próbka

 13
Author: h3xStream,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-03 19:56:45

Możesz to łatwo zrobić za pomocą ant. Oto Budowa.plik xml do tego

 <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>

To znajdzie pliki z formatem TEST-*.xml i generować raporty do folderu o nazwie unitTestReports.

Aby to uruchomić (zakładając, że powyższy plik nazywa się buildTestReports.xml) uruchom następujące polecenie w Terminalu:

ant -buildfile buildTestReports.xml
 11
Author: RPM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-23 20:23:34

Znalazłem powyższe odpowiedzi dość przydatne, ale nie do końca ogólnego przeznaczenia, wszystkie potrzebują innego dużego systemu budowania, takiego jak Ant lub Maven.

Chciałem wygenerować raport za pomocą prostego polecenia, które mógłbym wywołać ze wszystkiego (z kompilacji, testu lub tylko siebie), więc stworzyłem junit2html, który można znaleźć tutaj: https://github.com/inorton/junit2html

Możesz go zainstalować wykonując:

pip install junit2html
 7
Author: IanNorton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-23 07:02:58

Istnieje wiele opcji generowania raportów HTML dla skryptów Selenium WebDriver.

1. Użyj klasy JUNIT TESTWATCHER do tworzenia własnych raportów HTML Selenium

Klasa JUNIT testwatcher pozwala na nadpisanie metod JUNIT failed() i successed (), które są wywoływane automatycznie, gdy testy JUNIT nie powiodą się lub zdają egzamin.

Klasa TESTWATCHER JUNIT pozwala na nadpisanie następujących metod:

  • protected void failed (Throwable e, Opis Opis)

Metoda Failed () jest wywoływana, gdy test się nie powiedzie

  • protected void finished (Opis Opis)

Metoda Finished() jest wywoływana, gdy metoda testowa zakończy się (niezależnie od tego, czy przejdzie, czy nie)

  • protected void (AssumptionViolatedException e, Opis opis)
Metoda

Skipped () jest wywoływana, gdy test jest pomijany z powodu nieudanego założenia.

  • protected void starting (Description description)

Metoda Starting () jest wywoływana, gdy test ma się rozpocząć

  • protected void (Opis Opis)

Metoda succeed () jest wywoływana, gdy test się powiedzie

Patrz poniżej przykładowy kod dla tego przypadku:

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. Korzystanie z Allure Reporting framework

Allure framework może pomóc w generowaniu raportów HTML dla Twojego Selenium WebDriver projekty.

Struktura raportowania jest bardzo elastyczna i współpracuje z wieloma językami programowania i strukturami testowania jednostek.

Możesz przeczytać wszystko na temat http://allure.qatools.ru/.

Będziesz potrzebował następujących zależności i wtyczek do twojego pom.plik xml

  1. maven surefire
  2. aspectjweaver
  3. allure adapter

Zobacz więcej szczegółów, w tym próbki kodu na tej artykuł: http://test-able.blogspot.com/2015/10/create-selenium-html-reports-with-allure-framework.html

 3
Author: Alex Siminiuc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-22 22:32:11

Format Junit xml jest używany poza Java / Maven / Ant word. Jenkins z http://wiki.jenkins-ci.org/display/JENKINS/xUnit + Plugin jest rozwiązaniem.

Dla rozwiązania one shot znalazłem to narzędzie, które wykonuje zadanie: https://www.npmjs.com/package/junit-viewer

junit-viewer --results=*.xml --save=file_location.html

 2
Author: Daniel Kristof Kiss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-08 11:41:54