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 :

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 :

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.