Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 UserService est 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).