TestNG - Suite Test

UN test suiteè una raccolta di casi di test destinati a testare un comportamento o un insieme di comportamenti di un programma software. In TestNG, non possiamo definire una suite nel test del codice sorgente, ma è rappresentata da un file XML, poiché la suite è la caratteristica di esecuzione. Consente inoltre di eseguire una configurazione flessibile dei test . Una suite può contenere uno o più test ed è definita dal tag <suite>.

<suite> è il tag radice del tuo testng.xml. Descrive una suite di test, che a sua volta è composta da diverse sezioni <test>.

La tabella seguente elenca tutti gli attributi legali che <suite> accetta.

Sr.No. Attributo e descrizione
1

name

Il nome di questa suite. È unmandatory attributo.

2

verbose

Il livello o la verbosità per questa corsa.

3

parallel

Se TestNG deve eseguire thread diversi per eseguire questa suite.

4

thread-count

Il numero di thread da utilizzare, se la modalità parallela è abilitata (ignorata in altro modo).

5

annotations

Il tipo di annotazioni che stai utilizzando nei tuoi test.

6

time-out

Il timeout predefinito che verrà utilizzato su tutti i metodi di test trovati in questo test.

In questo capitolo, ti mostreremo un esempio con due classi di test, Test1 e Test2, da eseguire insieme utilizzando Test Suite.

Crea una classe

Crea una classe java da testare, ad esempio, MessageUtil.java in C:\>JUNIT_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;
   }

   // add "Hi!" to the message
   public String salutationMessage() {
      message = "Hi!" + message;
      System.out.println(message);
      return message;
   }
}

Crea classi di test case

Crea un file di classe java denominato Test1.java in C:\>TestNG_WORKSPACE.

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

public class Test1 {
   String message = "Manisha";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      Assert.assertEquals(message, messageUtil.printMessage());
   }
}

Crea un file di classe java denominato Test2.java in C:\>TestNG_WORKSPACE.

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

public class Test2 {
   String message = "Manisha";	
   MessageUtil messageUtil = new MessageUtil(message);
	 
   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Manisha";
      Assert.assertEquals(message,messageUtil.salutationMessage());
   }
}

Ora, scriviamo il testng.xml in C:\>TestNG_WORKSPACE, che conterrebbe il tag <suite> come segue:

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1">

   <test name = "exampletest1">
      <classes>
         <class name = "Test1" />
      </classes>
   </test>
  
   <test name = "exampletest2">
      <classes>
         <class name = "Test2" />
      </classes>
   </test>
  
</suite>

Suite1 include exampletest1 e exampletest2.

Compila tutte le classi java usando javac.

C:\TestNG_WORKSPACE>javac MessageUtil.java Test1.java Test2.java

Ora, esegui testng.xml, che eseguirà il test case definito nella classe Test Case fornita.

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

Verifica l'output.

Inside testPrintMessage()
Manisha
Inside testSalutationMessage()
Hi!Manisha

===============================================
Suite1
Total tests run: 2, Failures: 0, Skips: 0
===============================================

Puoi anche controllare la cartella di output del test . Nella cartella Suite1 , puoi vedere due file html creati, exampletest1.html e exampletest2.html, che apparirebbero come segue: