Comment puis-je obtenir des données de couverture de code à partir de tests fonctionnels Python BDD à l'aide de Behave ?

StackOverflow https://stackoverflow.com//questions/23019740

Question

Je n'ai pas vu de réponse à cette question spécifique (Outil de couverture de test pour le framework de test Behave) et je n'ai vu aucun résultat de recherche Google produire une réponse suffisante.Donc...

Comment puis-je obtenir un rapport de couverture de code de Behave ?J'ai du mal à croire qu'aucun développeur Python n'utilise la méthodologie BDD et j'ai encore plus de mal à croire que les développeurs Python qui utilisent BDD le font sans statistiques de couverture de code issues de leurs tests fonctionnels.Coverage.py peut-il être utilisé pour piloter Behave afin de produire une couverture de code ?Comment?

Était-ce utile?

La solution

Je ne sais pas comment utiliser me conduire, mais j'ai utilisé concombre pour BDD, que je pense probablement presque similaire.Et donc je pense que vous devriez pouvoir utiliser votre comportement avec une couverture.Vous devez spécifier quel fichier à inclure dans le fichier .. (Je l'ai utilisé avec concombre).Voir si Ce pourrait aider.

J'espère que cette réponse à votre question :)

# .coveragerc to control coverage.py
[run]
parallel = True

# if you want to include tests append tests/*
include =
    src/*
    *src*

[paths]
source =
    src/
    */src

tests =
    tests/
    */tests

Autres conseils

Suivre la suggestion de David ci-dessus.

En supposant que le code à tester est dans un répertoire d'applications, ajoutez ce qui suit à votre fichier . Coveragerc Fichier:

[run]
source=app/

du terminal:

coverage run $(which behave);

Vous pouvez ensuite utiliser le rapport de couverture ou la couverture HTML comme normal.Si vous ne spécifiez pas l'application Dir dans votre fichier . Coveragerc , la couverture teste toutes les bibliothèques Python locales à votre installation de comportement.

Behave peut générer des données de couverture Junit et le forfait de couverture peut combiner ces données provenant de plusieurs exécutions de tests et produire un rapport HTML que vous pouvez parcourir ou publier automatiquement dans votre environnement CI.

Voici les déclarations que j'utilise actuellement pour produire, combiner et rendre compte de la couverture avec behavior :

cd your/repo/tests  # <-- Make sure you're inside your tests dir!
rm -rf behave-reports/*
behave --junit --junit-directory behave-reports
coverage combine
coverage html

Le rm -rf behave-reports/* supprime de force tout ce qui se trouve dans le répertoire behavior-reports/ afin que je sois assuré soit d'un nouveau rapport de couverture, soit de rien du tout (produisant un échec dans CI, dans mon cas).Notez que si vous exécutez vos tests localement, vous souhaiterez ajouter une entrée à votre .gitignore fichier (ou équivalent) afin que vous n'ajoutiez pas et ne validiez pas vos résultats de test.

Courir, se comporter avec --junit produira une sortie junit, tandis que le --junit-directory l'indicateur indique à se comporter où écrire ces données Junit sur le disque.

En cours d'exécution coverage combine consomme toute la couverture du code et la combine en un seul fichier de couverture.

Enfin, coverage html produit un joli rapport HTML qui inclut toutes les données de couverture combinées.

Une autre option, utilisez la couverture pour exécuter le script principal de Bebe :

coverage run /path/to/lib/python2.7/site-packages/behave/__main__.py

Bien sûr, vous voudrez préciser dans votre .coveragerc quels fichiers source vous souhaitez inclure.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top