TestNG - Rapporti Junit

JUnit è uno di quei framework di unità che sono stati inizialmente utilizzati da molte applicazioni Java come framework di test di unità. Per impostazione predefinita, i test JUnit generano semplici file XML di report per l'esecuzione del test. Questi file XML possono quindi essere utilizzati per generare report personalizzati in base ai requisiti di test. Possiamo anche generare report HTML utilizzando i file XML. Ant ha un tale compito di utilità, che prende questi file XML JUnit come input e genera un report HTML.

TestNG, per impostazione predefinita, genera report XML JUnit per qualsiasi esecuzione di test (nella cartella di output del test ). Possiamo utilizzare questi file di report XML come input per generare un report HTML JUnit. Facciamo un esempio.

Crea classe test case

Crea una classe Java, diciamo, SampleTest.java in 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 di test precedente contiene tre metodi di test di cui testMethodOne e testMethodThree passeranno quando vengono eseguiti, mentre testMethodTwo viene fatto fallire passando un valore booleano falso al metodo Assert.assertTrue, che viene utilizzato per le condizioni di verità nei test.

Crea testng.xml

Crea testng.xml in C:\> TestNG_WORKSPACE per eseguire uno o più casi di test.

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

Compilare la classe SampleTest utilizzando javac.

C:\TestNG_WORKSPACE>javac SampleTest.java

Ora, esegui testng.xml.

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

Verifica l'output.

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

Ora che abbiamo i report XML JUnit disponibili dall'esecuzione sopra, creiamo un semplice file XML di configurazione di Ant build per generare un report HTML per l'esecuzione del test.

Crea un nuovo file denominato build.xml in C:\> TestNG_WORKSPACE cartella.

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

L'XML precedente definisce un semplice file Ant build.xml con una destinazione Ant specifica denominata junit-report che genera un report JUnit quando viene eseguito. La destinazione cerca i file XML del report JUnit nella directory test-output / junitreports. Per il file di configurazione Ant, la destinazione predefinita da eseguire è configurata come junit-report.

Apri la finestra del prompt dei comandi e vai alla directory C: \> TestNG_WORKSPACE nel prompt dei comandi ed esegui il comando:

C:\TestNG_WORKSPACE> ant

Una volta eseguito, verrà generato un report HTML JUnit nella directory configurata / html-report / Junit. Apri il file denominato junit-noframes.html sul tuo browser web predefinito. Vedrai il seguente rapporto HTML:

Qui, abbiamo visto come utilizzare il report XML JUnit generato da TestNG e generare report HTML utilizzando Ant. Esistono due tipi di report che possono essere generati utilizzando questo metodo:frames e no-frames.

Se la generazione del report è configurata con frame, saranno generati più file per ogni classe e il report principale si collegherà ad essi tramite link. UNno-framesreport è costituito da un unico file con tutti i risultati dell'esecuzione del test. Questo può essere configurato fornendo il rispettivo valore all'attributo di formato dell'attività di report in Ant.