Choisissez l'ordre d'exécuter des tests JUnit
Je voulais choisir l'ordre d'exécuter les tests JUnit.
J'ai 4 classes avec plusieurs méthodes de test, mon but est d'exécuter, par exemple, la méthode de la classe A, alors la méthode X de la classe B, et enfin la méthode de Z à partir de la classe A.
Serait vous aider s'il vous plaît?
Vous devez vous connecter pour publier un commentaire.
En général, vous ne pouvez pas spécifier l'ordre qu'unité distincte exécution des tests (même si vous pourriez définir les priorités dans TestNG et ont une priorité différente pour chaque test). Cependant, les tests unitaires doivent être en mesure de fonctionner en vase clos, l'ordre des tests ne devrait pas d'importance. C'est une mauvaise pratique. Si vous avez besoin de tests pour être dans un ordre spécifique, vous devez repenser votre conception. Si vous affichez les détails de pourquoi vous avez besoin de l'ordre, je suis sûr que nous pouvons vous offrir des suggestions.
À partir de la version 4.11, vous pouvez spécifier l'ordre d'exécution à l'aide d'annotations et de la commande par le nom de la méthode:
Voir JUnit 4.11 Notes De Version
@FixMethodOrder
, de l'ordre de méthodes est respecté.JUnit réponse à cette question est de créer une méthode de test comme ceci:
Qui est évidemment une réponse insatisfaisante dans certains cas (si l'installation et le démontage de la matière), mais la JUnit vue de l'unité de test est que si les tests ne sont pas indépendant, vous faites quelque chose de mal.
Si le ci-dessus ne répondent pas à vos besoins, avoir un regard sur TestNG.
Créer une suite de tests et d'appeler les méthodes de test dans l'ordre souhaité. @Yishai est juste que JUnit est conçu de sorte que chaque test est indépendant. Donc, si vous êtes l'appel de méthodes de test que peut fonctionner de manière indépendante, puis il devrait y avoir aucun problème avec la création d'une suite de tests pour assurer un scénario pour un appel d'ordre.
La remarque générale ou de l'idée que l'essai peut être fait dans un ordre arbitraire est trop forte.
Cela dépend vraiment de ce que vous testez.
Par exemple je suis en train de tester un serveur où nous avons une changePassword action.
Je pense qu'il est évident que l'ordre des tests est critique. Après changePassword, l'ancien mot de passe ne fonctionne plus, et avant, il n'.
Je ne veux pas revenir à l'état du serveur après chaque test, trop de travail. Je peux le faire une fois, après tous les tests ont été effectués.
Si la réponse précédente n'est pas satisfaisant, j'ai remarqué avec la JVM de Sun JUnit semble toujours à l'exécution de tests unitaires dans l'ordre dans lequel ils sont définis.
Évidemment, ce n'est pas une bonne idée de compter sur cela.
Cela pourrait être intéressant pour vous: JExample
Une approche différente pour les essais avec interdepentent tests.