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:

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