Code Coverage (Couverture de Code)
La couverture de code (Code Coverage) est une métrique utilisée pour mesurer la quantité de code source exécutée lors du lancement des tests unitaires.
Elle permet de répondre à la question : “Quelle partie de mon application est réellement testée ?”
Pourquoi est-ce important ?
- Identifier les zones non testées : Si vous voyez que votre
UserServiceest couvert à 10% seulement, c’est qu’il manque des tests critiques. - Confiance : Une couverture élevée (souvent 80%+) donne une certaine assurance que les régressions seront détectées.
- Maintenance : Cela aide à repérer le “code mort” (jamais exécuté).
Outils .NET
Dans l’écosystème .NET, l’outil standard est Coverlet.
Il est généralement installé par défaut avec les modèles de projet xUnit (coverlet.collector).
Générer un rapport
1. Lancer l’analyse
Pour lancer les tests en collectant les données de couverture, utilisez l’option --collect :
dotnet test --collect:"XPlat Code Coverage"
Cela va générer un fichier coverage.cobertura.xml dans un sous-dossier de TestResults (avec un GUID aléatoire).
2. Visualiser le rapport
Le fichier XML n’est pas très lisible. Pour avoir un beau rapport HTML, nous utilisons l’outil ReportGenerator.
Installation de l’outil (une seule fois) :
dotnet tool install -g dotnet-reportgenerator-globaltool
Génération du rapport :
reportgenerator -reports:TestResults/**/coverage.cobertura.xml -targetdir:coveragereport -reporttypes:Html
Vous pouvez ensuite ouvrir coveragereport/index.html dans votre navigateur pour naviguer dans votre code et voir ligne par ligne ce qui est couvert (en vert) ou non (en rouge).