Tests et TestNG
TestNG et les annotations
Différentes catégories d'annotations
Tout comme avec JUnit, il existe des annotations pour testNG, il y a les mêmes que JUnit ainsi que de nouvelles introduites par testNG. On peut regrouper ces différentes annotations en plusieurs catégories:
- Celles qui donnent des informations de configuration des classes de tests
- Celles qui sont mises juste avant les méthodes fournissant des données pour d'autres méthodes de tests
- Celles qui permettent de marquer les classes de tests
- Celles permettant de définir la description des classes de tests
- Celles permettant d'ordonner des méthodes entre elles, par exemple dire d'éxécuter telle méthode avant telle autre
Voici quelques annotations utilies
Annotations | paramétres | Utilité |
---|---|---|
@BeforeSuite @AfterSuite @BeforeTest @AfterTest @BeforeGroups @AfterGroups @BeforeClass @AfterClass @BeforeMethod @AfterMethod |
alwaysRun: Cet attribut permet de dire aux methodes précédées de @After... de lancer le test même si les méthodes de tests qui le précédent ont été sautées ou sont sorties en erreurs dependsOnGroups: Permet de définir la liste des groupes dont ce test dépend dependsOnMethods: Permet de définir la liste des méthodes dont ce test dépend enabled: Permet de définir si on veut ou pas exécuter le test, si cet attribut est à "false" alors le test correspondant ne sera pas lancé groups: Permet de définir la liste des groupes auxquels cette méthode appartient inheritGroups: |
Ces annotations permettent de définir des configurations pour les
classes de tests |
@DataProvider | name: Permet de définir le nom de notre dataProvider, si on ne remplit pas cet attribut alors le nom de la méthode est pris par défaut parallel: Si on positionne cet attribut à "true", alors les tests lancés avec les données du dataprovider sont lancés en parallèle. Par défaut cet attribut est à "false" |
Cette annotation nous permet de définir les méthodes qui vont fournir des données à des méthodes de tests |
@Factory | - | Marque les méthodes comme étant des fournisseurs, ces méthodes doivent retourner un tableau d'Object |
@Listeners | value: tableau de classes qui implémentent org.testng.ITestListener |
Définit les listeners utilisés sur une classe de tests |
@Parameters | value: La liste des paramétres pour la méthode de tests |
Décrit comment on passe les paramètres à notre méthode de tests |
@Test | alwaysRun: Le test sera lancé si cet attribut est à
"true" même si une des méthodes dont il dépend a échouée dataProvider: Indique le nom de la méthode fournissant les données dataProviderClass: Définit la classe dans laquelle on peut trouver la méthode fournissant les données. Si la classe n'est pas indiquée, testNG cherche dans la classe courante où est appelé le dataProvider dependsOnGroups: Définit la liste des groupes dont dépend cette méthode de test dependsOnMethods: Définit la liste des méthodes dont dépend cette méthode de test description: Permet de donner une description de la méthode précédée de cette annotation enabled: si à "true" test à exécuter, par défaut valeur à "true" expectedExceptions: Cette méthode attend une exception en cas d'erreur groups: Liste des groupes auxquels la méthode appartient invocationCount: Le nombre de fois où la méthode doit être appelée invocationTimeOut: Le temps maximum ( en accumulant les plusieurs exécutions ) cette méthode doit prendre au maximum priority: Priorité des méthodes, les priorité les plus basses sont exécutées en premiers successPercentage: Définit le pourcentage de réussite attendu sur cette méthode singleThreaded: Cet attribut ne peut s'appliquer qu'à une classe, s'il est à "true" alors cela guarantie que toutes les méthodes de cette classes seront exécutées dans un seul et unique thread (même si on a définit dans le fichier xml parallel="methods" ) timeOut: Définit en miliseconde le temps max que doit prendre un test threadPoolSize: Définit la taille du pool de thread utilisé (attention cet attribut n'est pris en compte que si l'attribut "invocationCount" est utilisé aussi) |
Marque une classe ou une méthode comme étant du code de tests |