TestNG - Esecuzione di test

I casi di test vengono eseguiti utilizzando TestNGclasse. Questa classe è il punto di ingresso principale per l'esecuzione di test nel framework TestNG. Gli utenti possono creare il proprio oggetto TestNG e invocarlo in molti modi diversi, ad esempio:

  • Su un file testng.xml esistente.

  • Su un testng.xml sintetico, creato interamente da Java.

  • Impostando direttamente le classi di test.

È inoltre possibile definire quali gruppi includere o escludere, assegnare parametri, ecc. I parametri della riga di comando sono:

  • -d diroutput: specifica la directory di output.

  • -testclass nome_classe: specifica uno o più nomi di classi.

  • -testjar jar_name: specifica il jar contenente i test.

  • -sourcedir src1; src2:; elenco separato di directory di origine (utilizzato solo quando vengono utilizzate le annotazioni javadoc).

  • -target

  • -groups

  • -testrunfactory

  • -listener

Creeremo l'oggetto TestNG un testng.xml esistente nel nostro esempio di seguito.

Crea una classe

Crea una classe java da testare, diciamo, MessageUtil.java in C:\>TestNG_WORKSPACE.

/*
* This class prints the given message on console.
*/

public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message) {
      this.message = message;
   }
      
   // prints the message
   public String printMessage() {
      System.out.println(message);
      return message;
   }   
}

Crea classe test case

  • Crea una classe di prova java, diciamo, SampleTest.java.

  • Aggiungi un metodo di test testPrintMessage () alla tua classe di test.

  • Aggiungi un'annotazione @Test al metodo testPrintMessage ().

  • Implementa la condizione di test e verifica la condizione utilizzando l'API assertEquals di TestNG.

Crea un file di classe java chiamato SampleTest.java in C:\>TestNG_WORKSPACE.

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

public class SampleTest {
	
   String message = "Hello World";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() {
      Assert.assertEquals(message, messageUtil.printMessage());
   }
}

Crea testng.xml

Quindi, creiamo il file testng.xml in C:\>TestNG_WORKSPACE, per eseguire uno o più casi di test. Questo file acquisisce l'intero test in XML. Questo file semplifica la descrizione di tutte le suite di test e dei relativi parametri in un unico file, che puoi controllare nel tuo repository di codice o inviare un'e-mail ai colleghi. Inoltre semplifica l'estrazione di sottoinsiemi dei test o la divisione di diverse configurazioni di runtime (ad esempio, testngdatabase.xml eseguirà solo test che esercitano il database).

<?xml version = "1.0" encoding = "UTF-8"?>

<suite name = "Sample test Suite">
   <test name = "Sample test">
      <classes>
         <class name = "SampleTest" />
      </classes>
   </test>
</suite>

Compila il test case usando javac.

C:\TestNG_WORKSPACE>javac MessageUtil.java SampleTest.java

Ora, esegui testng.xml, che eseguirà il test case definito nel tag <test>.

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

Verifica l'output.

Hello World

===============================================
Sample test Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================