Salut,
Comment connaître le scénario qui appelle ma fonction ? Comment utiliser les balises dans mon scénario de fonction ?
En fait j'ai un scénario :
Feature: create module feature
As a admin
I want to use create module
<strong i="8">@createModule</strong>
Given I am logged as 'ADMIN'
And I am on "/admin/create"
Then The "book_id" field should be empty
Je voudrais utiliser mon tag @createModule dans ma fonction Alors :
this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {
if (myModule === @createModule) {
...
} else if {
...
}
return main_po.checkIsEmptyElement(this, el);
});
J'aimerais obtenir mon tag @createModule , pour spécifier le scénario appelé, ou autre alternative, j'aimerais savoir quels scénarios appellent ma fonction.
Les balises sont utilisées pour choisir les scénarios à exécuter lors de l'exécution de cucumber-js (voir le README). Actuellement, les étapes n'ont aucun moyen de savoir pour quel scénario elles sont actuellement exécutées. Toutes les étapes d'un scénario partageront une instance mondiale (accessible via this
dans la définition de l'étape).
Résolu :
J'ai ajouté :
this.Before(function (scenario, callback) {
var tags = scenario.getTags();
this.current_module = tags[0].getName();
callback();
});
et ma fonction :
this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {
if (this.current_module === @createModule) {
...
} else if {
...
}
return main_po.checkIsEmptyElement(this, el);
});
@jechazelle merci d'avoir posté votre solution J'ai besoin de la même fonctionnalité pour un cas d'utilisation différent :)
Dans concombre-js 3.2.1 je dois utiliser
Before({timeout: 20000}, async function(testCase) {
this.tags = testCase.pickle.tags.map((tag) => tag.name);`
...
}
La raison pour laquelle je l'utilise est qu'une implémentation d'étape particulière échoue pour un sous-ensemble connu de scénarios. J'ai donc créé un ticket de défaut non critique dans notre système de suivi, étiqueté les scénarios défaillants avec le ticket #, puis ajouté la logique dans l'implémentation de l'étape pour renvoyer 'pending' si this.tags contient le numéro de ticket.
Cela permet à notre construction de revenir au vert, tandis que les pouvoirs en place décident s'ils veulent réparer le défaut ou non.
Ce fil a été automatiquement verrouillé puisqu'il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau problème pour les bogues associés.
Commentaire le plus utile
Résolu :
J'ai ajouté :
et ma fonction :