Est-il possible d'exclure des répertoires de tests de coverage.py les rapports?
Je suis une sorte de rookie avec python tests unitaires, et en particulier coverage.py. Est-il souhaitable d'avoir des rapports de couverture comprennent la couverture réelle de vos fichiers de test?
Voici une capture d'écran de mon Rapport HTML comme un exemple.
Vous pouvez le voir, le rapport comprend des tests/test_credit_card
. Au début, j'essayais d'omettre le tests/
répertoire de rapports, comme suit:
coverage html --omit=tests/ -d tests/coverage
J'ai essayé plusieurs variantes de cette commande mais je pourrais pas pour la vie de me procurer le tests/exclus. Après l'acceptation de la défaite, j'ai commencé à me demander si peut-être les fichiers de test sont censé à être inclus dans le rapport.
Quelqu'un peut jeter quelque lumière sur ce point?
- J'ai eu un problème similaire. Je ne voulais pas supplémentaire fichiers python (standard lib, etc.) dans le rapport sur la couverture. J'ai fini de les dépouiller de l'XML: stackoverflow.com/questions/2293647/...
Vous devez vous connecter pour publier un commentaire.
C'est une bonne idée de voir la couverture de vos tests aussi des problèmes. Si votre test de code n'est pas exécuté, alors il n'y avait pas beaucoup d'intérêt à l'écrire!
Celui que j'ai toujours, c'est quand je donne deux fonctions de test du même nom - je ajouter un nouveau test de plusieurs mois après l'original, et juste arriver à choisir le même nom. Le unittest cadre ne se plaignent à ce sujet - l'une des fonctions les peaux les autres et il ne peut pas exécuter l'une des épreuves! Le détail de la couverture du rapport montre que le problème immédiatement si.
Si vous avez d'autres codes dans vos tests qui n'est pas en cours d'exécution alors que peut aussi être due à d'autres bugs, bien que généralement, il y a souvent un couple de lignes de code réutilisable qui pourraient ne pas être couverts en fonction de la façon dont les tests se invoquée, alors ne vous obstinez pas à vouloir à 100%.
Et si vous avez un code de test qui n'est vraiment pas nécessaire, pas plus qu'il n'en est toujours bon de le supprimer!
coverage html --omit="*/test*" -d tests/coverage
--omit="*/test*,config/*.conf"
Créer
.coveragerc
fichier dans votre dossier racine du projet, et inclure les éléments suivants:Vous pouvez également spécifier explicitement le répertoire a le code que vous voulez une couverture au lieu de dire quels sont les choses à omettre. Dans un
.coveragerc
fichier, si le répertoire d'intérêt est appelédemo
, cela ressemble à