2009-11-04 3 views
17

J'ai une suite TestNG avec une grande quantité de méthodes. J'exécute cette suite en utilisant un wrapper construit sur le runner TestNG. Tous les tests de la suite échouent sauf un. Que dois-je écrire dans testng.xml pour exécuter juste ce test échoué?Comment exécuter un test à partir d'une grande suite TestNG en utilisant testng.xml?

Une solution évidente consiste à attribuer des noms de groupe uniques à toutes les méthodes, puis de spécifier le nom dans testng.xml. Cela peut fonctionner dans le cas de 2-3 méthodes, mais cela devient plus difficile à mesure que le nombre de tests augmente.

Répondre

1

Il existe plusieurs méthodes pour cela.

Utilisez-vous Eclipse pour le développement? Il existe un plugin Eclipse pour TestNG et je pense que ce serait de loin le moyen le plus simple pour exécuter des tests spécifiques. Le plugin vous permet de lancer une suite, un groupe, une classe ou une méthode de test disponible. Sinon, je crois que vous pouvez configurer une tâche ant pour lancer le test (http://testng.org/doc/ant.html) et utiliser des attributs comme "classfilesetref" pour fournir une liste de tests à exécuter. Vous pouvez spécifier le test dans un fichier séparé afin que vous n'ayez pas à mettre à jour le fichier build.xml chaque fois que vous exécutez le test.

Pour installer testng Plugin.Just Suivez les étapes: 1-Allez dans le menu "Aide" dans Eclipse. 2 Sélectionnez « Installer un nouveau logiciel » « 3 Ajouter » http://beust.com/eclipse. »

Il fonctionne dans le cas de l'erreur que vous avez indiqué, je pense que vous n'avez pas le plug-in installé dans le Eclippse IDE

+0

La première option n'est pas disponible - J'utilise un wrapper, construit sur le coureur TestNG pour lancer les tests.Eclipse n'attrape pas les résultats des tests, exécutés par mon wrapper. Merci pour la deuxième option - je vais l'essayer. –

4

Après . chaque course, TestNG crée un appelé déposé testng-failed.xml qui ne contient que les tests qui ont échoué simplement invoquer TestNG à nouveau sur ce fichier:

java org.testng.TestNG testng.xml java org.testng.TestNG testng -failed.xml

(remplacer org .testng.TestNG avec votre propre coureur puisque vous semblez en utiliser un personnalisé).

+0

Ne peut pas croire, Beust lui-même répondre à la réponse !! –

1

Vous pouvez également créer votre propre ITestListener (puisque vous avez de toute façon votre propre wrapper) qui garde une trace des échecs et ensuite de générer votre propre fichier de suite d'échecs qui contient seulement le test échoué. Les hooks d'écoute/intercepteur de TestNG sont plutôt bons. Au travail, nous avons TestNG étendu les utiliser de plusieurs façons:

  • capture/lecture des données de générer des jeux
  • enregistrement de résultat à une base de données
  • sortie de test sur mesure (logs)
  • méta-données telles que les ID , des descriptions, des ensembles de données fournis par un @DataProvider
  • contrôles d'exécution des restrictions dépendant de l'environnement sur les cas de test
6

Essayez ceci:

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <exclude name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
+1

Ou pour exécuter seulement celui –

15

Au lieu de exclude, vous pouvez utiliser include. Ça va exactement ce que vous voulez. Seul ce test sera exécuté.

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <include name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
Questions connexes