TestNG - Rapports Junit

JUnit est l'un de ces frameworks unitaires qui ont été initialement utilisés par de nombreuses applications Java comme framework de test unitaires. Par défaut, les tests JUnit génèrent des fichiers XML de rapport simples pour son exécution de test. Ces fichiers XML peuvent ensuite être utilisés pour générer des rapports personnalisés selon les exigences de test. Nous pouvons également générer des rapports HTML à l'aide des fichiers XML. Ant a une telle tâche utilitaire, qui prend ces fichiers XML JUnit en entrée et génère un rapport HTML.

TestNG, par défaut, génère des rapports XML JUnit pour toute exécution de test (dans le dossier test-output ). Nous pouvons utiliser ces fichiers de rapport XML comme entrée pour générer un rapport HTML JUnit. Prenons un exemple.

Créer une classe de cas de test

Créez une classe Java, par exemple SampleTest.java dans C:\> TestNG_WORKSPACE.

import org.testng.Assert;
import org.testng.annotations.Test;

public class SampleTest {
   @Test
   public void testMethodOne() {
      Assert.assertTrue(true);
   }
	  
   @Test
   public void testMethodTwo() {
      Assert.assertTrue(false);
   }
	  
   @Test(dependsOnMethods = {"testMethodTwo"})
   public void testMethodThree() {
      Assert.assertTrue(true);
   }
}

La classe de test précédente contient trois méthodes de test parmi lesquelles testMethodOne et testMethodThree réussiront une fois exécutées, tandis que testMethodTwo échouera en passant une valeur booléenne fausse à la méthode Assert.assertTrue, qui est utilisée pour les conditions de vérité dans les tests.

Créer testng.xml

Créez testng.xml dans C:\> TestNG_WORKSPACE pour exécuter des cas de test.

<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Suite">
  
   <test name = "Simple test">
      <classes>
         <class name = "SampleTest" />
      </classes>
   </test>
</suite>

Compilez la classe SampleTest à l'aide de javac.

C:\TestNG_WORKSPACE>javac SampleTest.java

Maintenant, exécutez testng.xml.

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

Vérifiez la sortie.

===============================================
   Simple Suite
   Total tests run: 3, Failures: 1, Skips: 1
===============================================

Maintenant que nous avons les rapports XML JUnit disponibles à partir de l'exécution ci-dessus, créons un simple fichier XML de configuration de construction Ant pour générer un rapport HTML pour l'exécution du test.

Créez un nouveau fichier nommé build.xml sous C:\> TestNG_WORKSPACE dossier.

<project name = "TestNG_WORKSPACE" default = "junit-report" basedir = ".">
   <!-- Sets the property variables to point to respective directories -->
   <property name = "junit-xml-dir" value="${basedir}/test-output/junitreports"/>
   <property name = "report-dir" value="${basedir}/html-report" />
  
   <!-- Ant target to generate html report -->
   <target name = "junit-report">
      <!-- Delete and recreate the html report directories -->
      <delete dir = "${report-dir}" failonerror="false"/>
      <mkdir dir = "${report-dir}" />
      <mkdir dir = "${report-dir}/Junit" />
      <!-- Ant task to generate the html report.
      todir - Directory to generate the output reports

      fileset - Directory to look for the junit xml reports.

      report - defines the type of format to be generated.
      Here we are using "noframes" which generates a single html report.
      -->
      <junitreport todir = "${report-dir}/Junit">
         <fileset dir = "${junit-xml-dir}">
            <include name = "**/*.xml" />
         </fileset>
         <report format = "noframes" todir = "${report-dir}/Junit" />
      </junitreport>
   </target>
</project>

Le code XML précédent définit un simple fichier Ant build.xml ayant une cible Ant spécifique nommée junit-report qui génère un rapport JUnit lors de son exécution. La cible recherche les fichiers XML du rapport JUnit dans le répertoire test-output / junitreports. Pour le fichier de configuration Ant, la cible par défaut à exécuter est configurée comme junit-report.

Ouvrez la fenêtre d'invite de commande et accédez au répertoire C: \> TestNG_WORKSPACE dans l'invite de commande et exécutez la commande:

C:\TestNG_WORKSPACE> ant

Une fois exécuté, un rapport HTML JUnit sera généré dans le répertoire configuré / html-report / Junit. Ouvrez le fichier nommé junit-noframes.html sur votre navigateur Web par défaut. Vous verrez le rapport HTML suivant -

Ici, nous avons vu comment utiliser le rapport XML JUnit généré par TestNG et générer un rapport HTML en utilisant Ant. Il existe deux types de rapports qui peuvent être générés à l'aide de cette méthode:frames et no-frames.

Si la génération de rapport est configurée avec des cadres, plusieurs fichiers seront générés pour chaque classe et le rapport principal s'y connectera via des liens. UNEno-framesrapport se compose d'un seul fichier avec tous les résultats de l'exécution du test. Cela peut être configuré en fournissant la valeur respective à l'attribut format de la tâche de rapport dans Ant.