Comment désactiver le test TestNG en fonction d'une condition
Est-il actuellement un moyen de désactiver TestNG de test basé sur une condition
Je sais que vous pouvez actuellement désactiver le test ainsi en TestNG:
@Test(enabled=false, group={"blah"})
public void testCurrency(){
...
}
Je vais désactiver le même test basé sur un état, mais ne savent pas comment. quelque chose Comme ceci:
@Test(enabled={isUk() ? false : true), group={"blah"})
public void testCurrency(){
...
}
Quelqu'un a la moindre idée si c'est possible ou pas.
source d'informationauteur Afamee
Vous devez vous connecter pour publier un commentaire.
Vous avez deux options:
Votre annotation transformateur permettrait de tester la condition, puis remplacer l'annotation @Test pour ajouter l'attribut "enabled=false" si la condition n'est pas satisfaite.
Une option plus simple est d'utiliser le @BeforeMethod annotation sur une méthode qui vérifie votre état de santé. Si vous souhaitez passer les tests, il suffit de jeter un SkipException. Comme ceci:
Il y a deux façons que je sais de qui vous permettent le contrôle de la "désactivation" des tests en TestNG.
La différenciation qui est très important à noter est que SkipException va sortir hors de tous les tests lors de l'implmenting IAnnotationTransformer utilise la Réflexion pour disbale tests individuels, en fonction d'une condition que vous spécifiez. Je vais expliquer à la fois SkipException et IAnnotationTransfomer.
SAUTER Exception exemple
IAnnotationTransformer exemple
Un peu plus compliqué, mais l'idée derrière ce concept est un concept connu sous le nom de la Réflexion.
Wiki - http://en.wikipedia.org/wiki/Reflection_(computer_programming)
Abord de mettre en œuvre la IAnnotation interface, le sauver dans un *.fichier java.
Dans vous de la suite de tests java fichier, effectuez les opérations suivantes dans l' @BeforeClass fonction
Une dernière étape est de s'assurer que vous ajoutez un écouteur dans votre build.xml fichier.
Le mien a fini de regarder comme cela, ce est juste une seule ligne de la build.xml:
Un Troisième option peut également être Assomption
Hypothèses pour TestNG - Lorsqu'une hypothèse échoue, TestNG sera demandé d'ignorer les cas de test et donc de ne pas l'exécuter.
méthode
Vous pouvez utiliser cet exemple: exemple
Jeter un
SkipException
dans une méthode annotée avec@BeforeMethod
ne fonctionne pas pour moi, car il a sauté tous les autres tests de mon test de suite avec aucune matière si unSkipException
ont été jetés pour ces tests.Je n'ai pas étudier à fond mais j'ai trouvé une autre solution : à l'aide de la
dependsOnMethods
attribut sur la@Test
annotation: