TestNG - Test de la suite
UNE test suiteest un ensemble de cas de test destinés à tester un comportement ou un ensemble de comportements d'un logiciel. Dans TestNG, nous ne pouvons pas définir une suite dans le test du code source, mais elle est représentée par un fichier XML, car la suite est la fonction d'exécution. Il permet également une configuration flexible des tests à exécuter. Une suite peut contenir un ou plusieurs tests et est définie par la balise <suite>.
<suite> est la balise racine de votre testng.xml. Il décrit une suite de tests, qui à son tour est composée de plusieurs sections <test>.
Le tableau suivant répertorie tous les attributs légaux acceptés par <suite>.
N ° Sr. | Attribut et description |
---|---|
1 | name Le nom de cette suite. C'est unmandatory attribut. |
2 | verbose Le niveau ou la verbosité de cette exécution. |
3 | parallel Si TestNG doit exécuter différents threads pour exécuter cette suite. |
4 | thread-count Le nombre de threads à utiliser, si le mode parallèle est activé (ignoré dans le cas contraire). |
5 | annotations Le type d'annotations que vous utilisez dans vos tests. |
6 | time-out Délai d'expiration par défaut qui sera utilisé sur toutes les méthodes de test trouvées dans ce test. |
Dans ce chapitre, nous allons vous montrer un exemple ayant deux classes de test, Test1 et Test2, à exécuter ensemble à l'aide de Test Suite.
Créer une classe
Créez une classe Java à tester, disons, MessageUtil.java dans 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;
}
}
Créer des classes de cas de test
Créez un fichier de classe Java nommé Test1.java dans 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());
}
}
Créez un fichier de classe Java nommé Test2.java dans 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());
}
}
Maintenant, écrivons le testng.xml dans C:\>TestNG_WORKSPACE, qui contiendrait la balise <suite> comme suit -
<?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 comprend exampletest1 et exampletest2.
Compilez toutes les classes java en utilisant javac.
C:\TestNG_WORKSPACE>javac MessageUtil.java Test1.java Test2.java
Maintenant, exécutez le testng.xml, qui exécutera le cas de test défini dans la classe de cas de test fournie.
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
Vérifiez la sortie.
Inside testPrintMessage()
Manisha
Inside testSalutationMessage()
Hi!Manisha
===============================================
Suite1
Total tests run: 2, Failures: 0, Skips: 0
===============================================
Vous pouvez également vérifier le dossier de sortie de test . Sous le dossier Suite1 , vous pouvez voir deux fichiers html créés, exampletest1.html et exampletest2.html, qui ressembleraient à ceci: