Je me fais mes pieds mouillés avec specflow, et je l'apprécie vraiment.
Sauf pour quelques problèmes épineux ... comme le code de configuration de la fonctionnalité et du scénario. p>
dans un "général -Publise "fichier appelé Mais maintenant, j'ai deux scénarios dans un fichier de étapes spécifiques à un test qui A également besoin d'une configuration assez étendue avant de pouvoir être courue. J'ai donc marqué leur scénario dans le et implémenté un Ça fonctionne - il est appelé - mais il est appelé avant strud> l'objectif général y a-t-il de même en sorte que Specflow doit commander le < Code> [Beforescenario] Code> Méthodes? Ou puis-je indiquer une méthode spécifique Bien sûr, je pourrais appeler cette "base" Des idées? pensées? Pointeurs? P> P> infrastructuresteps.cons code>, j'ai un code de configuration générale qui devrait être exécuté pour chaque scénario - donc ma méthode ressemble à ceci: p>
.feature code> avec une balise: p>
spécifique à un test "/ code> configuration Méthode: p>
[Beforescenario] code> la méthode est appelée :-( et donc il échoue - des choses en cours de configuration dans cette méthode de configuration à usage général ne sont pas présentes et que mon code échoue. P>
[codescenario] code> pour exécuter d'abord une "base"
[beforescenario] code> comme appel à une base Méthode dans une méthode de remplacement? P>
[beforescenario] code> méthode explicitement - mais cela semble un peu comme une approche à marteau de luge .... . P>
3 Réponses :
Je suis à peu près sûr que vous pouvez (et ne devrait probablement pas) commander l'ordre d'exécution de vos scénarios. p>
Mais vous pouvez utiliser un autre hameçons tels que précédemment praticez et peut-être le contourner de cette façon. p>
Un autre moyen est de simplement avoir un drapeau qui vérifie si le genre général a été défini dans les éléments spécifiques, appelant la méthode SetupDBContext (ou de préférence la chose que SetupDBContext appelle à son tour). p>
Utilisez le scénariocontext.current Dictionnaire pour stocker vos drapeaux. P>
J'espère que vous avez trouvé cela utile p>
Vous pouvez également utiliser FeatureContext.Current pour une utilisation avec AvantFeat
J'ai eu le même problème. J'ai fini par utiliser
if(ScenarioContext.Current.ScenarioInfo.Tags.Contains("needs_extra_setup"))
Merci pour cela! Était à la recherche d'un moyen de discriminer entre Web (c'est-à-dire des tests d'acceptation non-web, cette documentation me donnait exactement ce dont j'avais besoin :)
Ceci est maintenant possible dans le V2 de Specflow, qui est en version bêta au moment de la rédaction. p>
Les attributs de liaison à l'étape ont une propriété de commande optionnelle qui vous permet de spécifier l'ordre des crochets. Les plus petits numéros seront traités en premier et la valeur de commande par défaut est de 10 000. P>
Merci! - [commander] code> l'a fait dans le version finale