Question

Je suis un peu une recrue avec les tests unitaires en python, et plus particulièrement avec la couverture. Est-il souhaitable que les rapports de couverture incluent la couverture de vos fichiers de test réels?

Voici une capture d'écran de mon rapport HTML , à titre d'exemple. / p>

Vous pouvez constater que le rapport inclut tests / test_credit_card . Au début, j'essayais d'omettre le répertoire tests / des rapports, comme suit:

coverage html --omit=tests/ -d tests/coverage

J'ai essayé plusieurs variantes de cette commande, mais je ne pouvais pas y mettre les tests / exclus. Après avoir accepté ma défaite, je me suis demandé si les fichiers de test étaient supposés être inclus dans le rapport.

Quelqu'un peut-il nous éclairer?

Était-ce utile?

La solution

  

Modifier: Je pense maintenant que je suis d'accord avec le commentaire ci-dessous sur le fait que ce n'est pas un bon   idée de mélanger un test de votre code de production avec un test de vos tests   code. Je ne peux pas supprimer une réponse acceptée, je la laisse donc inchangée.

     

** Merci de bien vouloir noter ma réponse! **

C'est une bonne idée de voir la couverture de vos tests car cela peut indiquer des problèmes. Si votre code de test n’est pas utilisé, alors il n’a pas grand-chose à écrire!

Ce que je reçois toujours, c’est lorsque je donne le même nom à deux fonctions de test unitaire - j’ajoute un nouveau test plusieurs mois après le test original et je choisis le même nom. Le framework unittest ne s'en plaindra pas - l'une des fonctions cache l'autre et ne lance aucun des tests! Le rapport de couverture détaillé indique cependant le problème immédiatement.

Si vos tests ne contiennent pas d’autres codes, cela peut également indiquer d’autres bogues, bien qu’il existe généralement quelques lignes de code standard qui pourraient ne pas être couvertes en fonction de la manière dont les tests sont invoqués, alors ne vous laissez pas décourager d’atteindre 100%.

Et si vous avez un code de test qui n’est vraiment plus nécessaire, il est toujours bon de le supprimer!

Autres conseils

couverture html --omit = " * / test * " -d tests / couverture

Créez un fichier .coveragerc dans le dossier racine de votre projet et incluez les éléments suivants:

[run]
omit = *tests*

Vous pouvez également spécifier explicitement quel répertoire contient le code sur lequel vous souhaitez une couverture au lieu d'indiquer les éléments à omettre. Dans un fichier .coveragerc , si le répertoire qui vous intéresse est appelé demo , cela ressemble à

[run]
source = demo
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top