[PYTHON] [Note] Mesurer la couverture lors de l'exécution d'un test unitaire de Django

Objectif

Afin de rechercher la partie que le test unitaire implémenté sur Django ne peut pas couvrir, nous introduisons coverage et mesurons la couverture.

Vérification

environnement

introduction

On suppose que Django est déjà installé.

$ pip install coverage

la mesure

Exécutez tous les tests et effectuez des mesures. À ce stade, un fichier «.coverage» est généré.

$ coverage run --source=. --omit='*/tests*' manage.py test

À ce stade, afin d'exclure tout répertoire qui agrège les tests unitaires, l'option --omit est utilisée pour exclure la mesure de couverture. Voir l'aide pour les types d'options de mesure.

$ coverage run --help

résultat

Sortez le résultat de la mesure.

$ coverage report -m
Name                                                 Stmts   Miss  Cover   Missing
----------------------------------------------------------------------------------
auth/models.py                                          61      7    89%   15, 28-30, 115-116, 119
...
config/__init__.py                                       0      0   100%
...
----------------------------------------------------------------------------------
TOTAL                                                  967    207    79%

Les noms des colonnes et leur signification sont les suivants: «Manquant» est affiché à l'aide de l'option «-m».

Nom de colonne sens
Name Fait référence au nom du fichier cible pour la mesure de la couverture.
Stmts Abréviation des déclarations.Se réfère au nombre de lignes de code exécutable.
Miss Se réfère au nombre de lignes qui n'ont pas été exécutées dans Stmts.
Cover couverture(Taux de couverture)Pointer vers.
Missing Fait référence au numéro de ligne qui était la cible de Miss.

Consultez l'aide pour les types d'options lors de la sortie des résultats.

$ coverage report --help

Il est également possible de générer des rapports au format HTML, XML, JSON, etc. Pour plus de détails, voir [Document](https://coverage.readthedocs.io/en/coverage-5.3/cmd.html#html-annotation] -coverage-html).

Résumé

En mesurant la couverture lors de l'exécution du test unitaire de Django, les parties qui ne sont pas couvertes sont visualisées.

référence

Recommended Posts

[Note] Mesurer la couverture lors de l'exécution d'un test unitaire de Django
Mesurer la couverture des applications Django avec Coverage.py
Django Note 4
Django Note 5
Django Note 1
Django Note 3
Django Note 2
Notez que admin.py n'est pas reflété immédiatement lors de l'exécution de Django avec WSGIDaemonProcess
Test unitaire Python