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: