Coverage.py : mesurer la couverture de code Python par les tests

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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

                
    
    

Recommendations