Il y a plusieurs hooks 'After' et l'un d'eux devrait être le premier que les autres, comment cela pourrait-il être configuré dans le Cucumber JS?
4 Réponses :
Trié de haut en bas dans le fichier hooks
After({}, async function() { return "This will run first"; }); After({}, async function() { return "tThis will run second"; });
Vous pouvez configurer explicitement les hooks pour qu'ils s'exécutent dans un certain ordre:
@Before(order = 10) // Annotated method public void doSomething(){ // Do something before each scenario } Before(10, () -> { // Lambda // Do something before each scenario });
Il semble que cela fonctionne également pour @After hooks .
Edit: Laisser ceci au cas où cela serait utile pour n'importe quel Java - j'ai manqué que c'était JS, désolé! Mais pour Javascript:
Hooks sont exécutées dans l'ordre dans lequel elles sont définies. Si cela ne le fait pas pour vous, créez un hook et appelez explicitement les autres méthodes.
L'option de crochet de commande n'est pas disponible dans Cucumber JS
@ fabien7474 Merci, mon cerveau était manifestement endormi quand j'ai écrit ceci. Ajout d'une note pour Javascript.
Vous pouvez utiliser le concept de balises pour chaque scénario dans le fichier d'entités concombre et utiliser la même balise sur chaque annotation @After, ce qui résoudra pour quel scénario de test cet @After spécifique doit s'exécuter
Hooks est un fichier qui sera exécuté de haut en bas. Si vous avez plus de balises After, faites en sorte que ce que vous voulez fermer en premier soit le premier et le dernier ce que vous voulez exécuter en dernier. Si vous avez des balises dans votre fichier d'entités, transmettez ces informations à l'Après spécifique
Quand il est défini dans le même fichier, c'est assez facile. Mais je suppose que votre question est quand vous avez plusieurs hooks "After" définis dans plusieurs fichiers, non?