Qu'est-ce que Coverage.py ?
Coverage.py est un outil puissant pour analyser la couverture de code par les tests en Python. Il permet aux développeurs de savoir exactement quelles parties de leur code ont été exécutées pendant les tests et lesquelles sont restées inutilisées. Cet outil est essentiel pour garantir la qualité du code et identifier les lacunes potentielles dans la couverture des tests.
L'objectif principal de Coverage.py est de fournir des informations détaillées sur la manière dont vos tests couvrent le code écrit. L'outil analyse l'exécution du programme et génère des rapports indiquant le pourcentage de couverture pour chaque fichier, module ou même ligne de code spécifique.
Fonctionnalités clés de Coverage.py
Coverage.py offre un large éventail de fonctionnalités pour l'analyse de la couverture de code :
Mesure de la couverture des lignes — la fonction de base qui suit quelles lignes de code ont été exécutées pendant les tests.
Analyse des branches — une fonction avancée qui vérifie si tous les chemins d'exécution possibles dans les structures conditionnelles (if, elif, else) ont été testés.
Génération de rapports — création de rapports détaillés dans différents formats : texte, HTML, XML, JSON.
Intégration avec les frameworks — une compatibilité transparente avec les frameworks de test populaires comme pytest, unittest et nose.
Configuration des exclusions — possibilité d'exclure certains fichiers, dossiers ou lignes de l'analyse de couverture.
Installation et configuration initiale
Installation standard
Pour installer Coverage.py, utilisez pip :
pip install coverage
Installation avec des fonctionnalités supplémentaires
Si vous travaillez avec pytest, il est recommandé d'installer le plugin pytest-cov :
pip install pytest-cov
Pour utiliser les fichiers de configuration toml :
pip install coverage[toml]
Vérification de l'installation
Après l'installation, vérifiez que Coverage.py fonctionne correctement :
coverage --version
Commandes principales et leur utilisation
Lancement de l'analyse de couverture
Lancement de base de l'analyse de couverture pour un script Python :
coverage run my_script.py
Lancement avec des paramètres supplémentaires :
coverage run --source=my_package my_script.py
Lancement avec le module unittest
coverage run -m unittest discover
Lancement avec pytest
coverage run -m pytest
Ou en utilisant pytest-cov :
pytest --cov=my_module tests/
Consultation du rapport de couverture
Rapport texte dans le terminal
coverage report
Exemple de sortie :
Name Stmts Miss Cover
----------------------------------------
my_module.py 25 3 88%
utils.py 15 0 100%
main.py 20 5 75%
----------------------------------------
TOTAL 60 8 87%
Rapport détaillé avec les lignes manquantes
coverage report --show-missing
Rapport HTML
coverage html
Après avoir exécuté la commande, ouvrez le fichier htmlcov/index.html dans votre navigateur pour consulter le rapport interactif.
Rapport XML pour CI/CD
coverage xml
Rapport JSON
coverage json
Gestion des données de couverture
Nettoyage des données
Aussi dans la bibliothèque
ORM pour Java : comparaison de Hibernate, MyBatis, JPA et Spring Data
AVFoundation Swift : guide complet avec exemples
SQLite3 – travail intégré avec SQLite en Python
Framework CLI pour Swift : créer des utilitaires console pour iOS/macOS
Configuration des applications Go (Golang) : bibliothèques et outils
Recommendations