J'ai une fonction "se comporter" qui comporte de nombreux tests.
Je n'ai qu'à exécuter un scénario spécifique pour les besoins de développement.
Comment fait-on ça?
(de préférence sur la ligne de commande)
Pour exécuter un seul scénario, vous pouvez utiliser -n
avec le nom du scénario:
$ behave -n 'clicking the button "foo" should bar the baz'
J'utilise des guillemets simples ci-dessus pour conserver le nom du scénario comme argument one pour -n
. Sinon, le shell passera chaque mot du nom de scénario comme un argument distinct.
Si vous souhaitez exécuter un seul test pour cette fonctionnalité, utilisez le -n
ou --name
drapeau qui semble vouloir le texte après Scenario:
behave -n 'This is a scenario name'
Vous pouvez exécuter un fichier de fonction en utilisant -i
ou --include
drapeaux puis le nom du fichier de fonction.
behave -i file_name.feature
ou:
behave --include file_name
Vous pouvez également exclure avec le --exclude
drapeau:
behave -e file_name
Pour plus d'informations, consultez la documentation de arguments de ligne de commande . Il y a beaucoup d'informations utiles cachées dans leur section annexe.
REMARQUE: Au moment où j'écris ceci, cela ne fonctionnera pas avec Python 3.6 et Behave 1.2.5, à cause de cela problème . (MISE À JOUR: 1.2. 6 est sorti et corrige cela, mais si vous êtes sur python 3.4 cette version ne sera pas disponible depuis pip donc vous pouvez contourner cela avec pip3 install git+https://github.com/behave/behave#1.2.6rc
).
Il semble également que vous devriez pouvoir passer le texte après Feature:
pour l'indicateur -i mais actuellement cela ne fonctionne pas. Quelqu'un me rappelle de mettre à jour si cela fonctionne à nouveau. J'encourage également les gens à vérifier le drapeau wip, qui vous permet d'ajouter @wip
à un test, puis -wip
exécutera non seulement le test, mais autorisera également les instructions d'impression/de journalisation pour le débogage.
Les balises offrent quelques options ...
1) Marquez les lents puis évitez en invoquant avec l'inverse, par ex.
behave -t '~@slow_tag_name'
2) Cependant, pour plus de flexibilité, je recommanderais personnellement de marquer chaque scénario avec un ID unique. par exemple. J'utilise un @YYYY_MM_DD_HHmm_Initials
schéma de balises depuis, c'est assez unique et la traçabilité est utile/intéressante. Ensuite, vous pouvez toujours simplement invoquer avec la balise et la faire exécuter le scénario, .e.g
behave @2015_01_03_0936_jh