web-dev-qa-db-fra.com

Comment générer un rapport HTML pour les résultats Junit?

Existe-t-il un moyen de générer (facilement) un rapport HTML contenant les résultats des tests? J'utilise actuellement JUnit en plus de Selenium pour tester l'interface utilisateur des applications Web.

PS: Compte tenu de la structure du projet, je ne suis pas censé utiliser Ant :(

39
Andrei Ciobanu

Si vous pouviez utiliser Ant alors vous utiliseriez simplement la tâche JUnitReport comme détaillé ici: http://ant.Apache.org/manual /Tasks/junitreport.html , mais vous avez mentionné dans votre question que vous n'êtes pas censé utiliser Ant. Je crois que cette tâche transforme simplement le rapport XML en HTML, il serait donc possible d'utiliser n'importe quel processeur XSLT pour générer un rapport similaire.

Alternativement, vous pouvez passer à l'utilisation de TestNG ( http://testng.org/doc/index.html ) qui est très similaire à JUnit mais a un rapport HTML par défaut ainsi que plusieurs autres fonctionnalités intéressantes.

13
Dave Hunt

Alternativement, pour ceux qui utilisent l'outil de construction Maven, il existe un plugin appelé Surefire Report .

Le rapport ressemble à ceci: exemple

13
h3xStream

J'ai trouvé les réponses ci-dessus assez utiles mais pas vraiment générales, elles ont toutes besoin d'un autre système de construction majeur comme Ant ou Maven.

Je voulais générer un rapport dans une simple commande à un coup que je pourrais appeler à partir de n'importe quoi (à partir d'une build, d'un test ou simplement de moi-même), j'ai donc créé junit2html qui peut être trouvé ici: https: // github. com/inorton/junit2html

Vous pouvez l'installer en faisant:

pip install junit2html
12
IanNorton

Vous pouvez facilement le faire via ant. Voici un fichier build.xml pour ce faire

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

Cela trouvera des fichiers au format TEST - *. Xml et générera des rapports dans un dossier nommé unitTestReports.

Pour exécuter cela (en supposant que le fichier ci-dessus s'appelle buildTestReports.xml), exécutez la commande suivante dans le terminal:

ant -buildfile buildTestReports.xml
11
RPM

Le format Junit xml est utilisé en dehors de Java/Maven/Ant Word. Jenkins avec http://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin est une solution.

Pour la solution unique, j'ai trouvé cet outil qui fait le travail: https://www.npmjs.com/package/junit-viewer

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

--results= est un répertoire contenant des fichiers xml (rapports de test)

7

Plusieurs options sont disponibles pour générer des rapports HTML pour les scripts Selenium WebDriver.

1. Utilisez la classe JUNIT TestWatcher pour créer vos propres rapports HTML Selenium

La classe TestWatcher JUNIT permet de remplacer les méthodes JUNIT failed () et reused () qui sont appelées automatiquement lorsque les tests JUNIT échouent ou réussissent.

La classe TestWatcher JUNIT permet de remplacer les méthodes suivantes:

  • échec du vide protégé (Throwable e, Description description)

la méthode failed () est invoquée en cas d'échec d'un test

  • vide protégé fini (Description description)

la méthode finish () est invoquée lorsqu'une méthode de test se termine (qu'elle réussisse ou échoue)

  • vide protégé ignoré (AssomptionViolatedException e, Description description)

la méthode skipped () est invoquée lorsqu'un test est ignoré en raison d'une hypothèse qui a échoué.

  • démarrage vide protégé (Description description)

la méthode starting () est invoquée lorsqu'un test est sur le point de démarrer

  • vide protégé réussi (Description description)

la méthode reused () est invoquée lorsqu'un test réussit

Voir l'exemple de code ci-dessous pour ce cas:

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. Utilisez le framework Allure Reporting

Le framework Allure peut vous aider à générer des rapports HTML pour vos projets Selenium WebDriver.

Le cadre de génération de rapports est très flexible et il fonctionne avec de nombreux langages de programmation et cadres de tests unitaires.

Vous pouvez tout lire à ce sujet sur http://allure.qatools.ru/ .

Vous aurez besoin des dépendances et plugins suivants pour être ajoutés à votre fichier pom.xml

  1. maven surefire
  2. aspectjweaver
  3. adaptateur allure

Voir plus de détails, y compris des exemples de code sur cet article: http://test-able.blogspot.com/2015/10/create-Selenium-html-reports-with-allure-framework.html

3
Alex Siminiuc

J'ai trouvé xunit-viewer , qui a déprécié junit-viewer mentionné par @ daniel-kristof-kiss .

Il est très simple, recueille automatiquement et récursivement tous les fichiers pertinents au format ANT Junit XML et crée un seul fichier html avec filtrage et autres fonctionnalités intéressantes.

Je l'utilise pour télécharger les résultats des tests à partir des versions de Travis car Travis n'a pas d'autre support pour collecter la sortie des résultats de test au format standard.

1
thoni56