Conditionnel sauter de TestNG tests
Je n'ai pas beaucoup d'expérience avec TestNG annotations, cependant je suis en train de construire une suite de tests à l'aide de TestNG cadre et POM modèle de conception pour un site de vente en détail. J'ai l'intention d'utiliser une approche axée sur les données. Mon plan est de conduire mes scénarios de test via excel et n'utilisant pas de testng.xml.
Par exemple je vais avoir de la nombre de des tests, qui ne sera rien, mais les différents fichiers de classe sous un nom de package TestSuite. TestSuite noms seront inscrits dans un fichier excel et l'utilisateur sera autorisé à définir le mode d'exécution de la suite de tests en changeant le mode d'exécution de VRAI/FAUX.
Ici, j'ai l'intention de mettre en œuvre une condition de vérifier pour voir si le mode d'Exécution est FAUX, et en conséquence de sauter de la suite de tests, c'est à dire de la suite de tests de la classe.
Nous n'avons aucune méthode directe pour obtenir le même à l'aide de TestNG ou s'il vous plaît suggérer une solution pour la même chose avec un petit exemple.
OriginalL'auteur user3000021 | 2013-11-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser TestNG est annotation transformateur pour définir la
disabled
propriété d'un@Test
annotation à true ou false.Exemple:
Vous obtenez l'annotation, une classe, un constructeur et testMethod comme argument. Vous pouvez utiliser celui qui vous aime/besoin de sauter le test. Sauter toute la classe est le même que le saut tous les tests dans la classe.
Ok, je vais essayer de le même. Pourriez-vous me dire si toutes ces classes de test doit avoir les annotations ou lui-même ou pour les méthodes. Je veux dire que je dois faire la classe avec @Test et aussi les méthodes.
Salut, j'ai essayé ceci, mais on dirait que je dois compter sur le fichier xml, cependant j'ai besoin d'une option où je vais courir une boucle à travers le excel où j'ai une liste de testsuite(dans ce cas ce sont les fichiers de classe), et je vais vérifier si la suite de tests est exécutable par une vérification de son mode d'exécution. Après que je passerai ce nom à la méthode de les ignorer ou de continuer à la classe. Si la classe est ignorée alors je ll effectuer le même processus jusqu'à ce que je obtenir un nom de classe qui a runmode == true et ensuite, le contrôle passe à l'intérieur de la classe et exécute toutes les @des méthodes d'Essai, cependant, la boucle sera en attente à la même position.
Est-il possible d'ignorer l'ensemble de la suite de tests si, au départ, ma santé mentale échoue @BeforeSuite méthode ?
OriginalL'auteur Mariusz Jamro
Veuillez ajouter les dessous de la ligne de code au début de l'essai, qui fera passer votre test
OriginalL'auteur user3744480
Depuis 6.13
throw new SkipException("Skipping the test case");
ne fonctionne pas. Je dois mettre en état avant de les jeter exception, sinon le test sera l'état de l'échec au lieu de sauté:iTestResult.setStatus(TestResult.SKIP);
throw new SkipException("Skipping the test case");
Probablement il sera réparé/changé dans une prochaine version, veuillez consulter https://github.com/cbeust/testng/issues/1632 pour plus de détails.
OriginalL'auteur Mykola G.
Il suffit de sauter le cas de test pas de la suite complète. Au lieu de regarder la suite en mode Run, consultez le mode d'Exécution de cas de test comme O/N dans le
@beforeTest
Méthode. Alors si vous avez trouvé le mode d'exécution N, lever une exception .Ce va sauter dans votre cas de test. C'est juste une alternative, même moi, je n'ai pas trouvé d'autre moyen de sauter l'ensemble de la suite. Le cas ci-dessus permettra de remplir l'objectif juste besoin de garder le mode d'exécution de chaque cas de test comme N, si vous ne voulez pas exécuter la suite. Il va sauter dans tous les cas de test de la suite et fera partie de votre rapport, que ces cas de test ont été ignorés.
Exemple est donné ci-dessous
OriginalL'auteur Arpan Saini
La meilleure solution que j'ai trouvé, Nous pouvons vérifier le mode d'exécution de la Suite dans @BeforeTest Annotation méthode si il trouve N, Puis jeter un nouveau saut d'Exception, il va sauter dans tous les cas de test de la suite, j'ai fait une erreur pour intercepter l'Exception dans le bloc try catch c'est pourquoi il allait vérifier tous les cas de test après avoir jeter sauter exception.
Veuillez trouver ci-dessous l'exemple de droite comment faire pour ignorer tous les cas de test dans une suite, si suite en mode run trouvé que la N de la suite de microsoft Excel. l'exécution de ce à travers testng.xml
OriginalL'auteur Arpan Saini