Outils complémentaires pour Vsc et python : code coverage
Installation
Coverage pour pytest
On va utiliser le code coverage de pytest :
python -m pip install pytest-cov
Ce module python installe deux choses :
- le module de couverture de code coverage
- l'utilisation de coverage avec pytest : pytest-cov
Extension vscode
Puis l'extension de vscode qui permet de rendre compte du coverage dans l'interface. Tapez Coverage Gutters dans le menu affichage > extensions.
Utilisation
Utiliser coverage sans pytest
En 2 temps :
- exécution de la couverture de code :
python -m coverage run [mon_fichier]
. Cette exécution crée un fichier.coverage
qui contient le rapport d'exécution - visualisation du rapport :
python -m coverage report
Il est possible de paramétrer très finement le rapport. Lisez la documentation pour voir toutes les possibilités :
https://coverage.readthedocs.io/en/7.1.0/cmd.html#coverage-summary-coverage-report
Couverture de code avec pytest
Dans un terminal tapez python -m pytest --cov=.
. Cela exécute les tests à partir du dossier courant (.
) avec le coverage qui sera retourné au format texte.
Si l'on veut les ligne manquantes, on peut utiliser la commande : --cov-report term-missing
Enfin, pour avoir un rapport html complet on peut utiliser la ligne : python -m pytest --cov=. --cov-report html
.
Utilisation de l'extension *Coverage Gutters
La commande python -m pytest --cov=.
crée un fichier de coverage qui s'appelle .coverage
. Il n'est cependant pas lisible dans ce format par défaut par l'extension. Il faut générer un format de sorti en xml avec la commande : python -m pytest --cov=. --cov-report xml:cov.xml
Si le petit watch n'est pas visible dans la barre de status, vous pouvez le faire à la main dans avec la palette de commande Coverage Gutters: Display Coverage.