Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Conseil / Astuce
Lors de l’utilisation de Microsoft.Testing.Platform.MSBuild (inclus transitivement par MSTest, NUnit et xUnit Runners), les extensions de couverture de code sont inscrites automatiquement lorsque vous installez leurs packages NuGet, sans modification du code nécessaire.
Vous pouvez utiliser la fonctionnalité de couverture du code pour déterminer la proportion du code de votre project testée par des tests codés tels que des tests unitaires. Pour apporter une protection efficace contre les bogues, vos tests doivent s’effectuer sur ou couvrir une proportion importante de votre code.
Couverture du code Microsoft
L’analyse de la couverture du code Microsoft est possible pour le code managé (CLR) et non managé (natif). L’instrumentation statique et dynamique est prise en charge. Cette extension nécessite le package NuGet Microsoft.Testing.Extensions.CodeCoverage .
Note
La couverture du code non managé (native) est désactivée par défaut dans l’extension. Utilisez des indicateurs EnableStaticNativeInstrumentation et EnableDynamicNativeInstrumentation pour l’activer si nécessaire.
Pour plus d’informations sur la couverture de code non managé, consultez Instrumentation native statique et dynamique.
Important
Le package est expédié avec la bibliothèque Microsoft .NET avec un modèle de licence propriétaire gratuit à utiliser.
Pour plus d’informations sur la couverture du code Microsoft, consultez sa page GitHub.
Options
| Choix | Descriptif |
|---|---|
--coverage |
Utilisez l'outil dotnet-coverage pour collecter la couverture de code. |
--coverage-output |
Nom ou chemin du fichier de couverture produit. Par défaut, le fichier est TestResults/<guid>.coverage. |
--coverage-output-format |
Format de fichier de sortie. Les valeurs prises en charge sont les suivantes : coverage, xmlet cobertura. La valeur par défaut est coverage. |
--coverage-settings |
Paramètres de couverture du code XML.. |
Pour plus d’informations sur les options disponibles, consultez settings et samples.
Note
La valeur par défaut de IncludeTestAssembly dans Microsoft.Testing.Extensions.CodeCoverage est false, au lieu de true dans VSTest. Cela signifie que les projets de test sont exclus par défaut. Pour plus d’informations, consultez Code Coverage configuration.
Compatibilité des versions
Le tableau suivant montre la compatibilité entre différentes versions de Microsoft.Testing.Extensions.CodeCoverage et Microsoft.Testing.Platform :
| Microsoft.Testing.Extensions.CodeCoverage | Microsoft.Testing.Platform |
|---|---|
| 18.1.x | 2.0.x |
| 18.0.x | 1.8.x |
| 17.14.x | 1.6.2 |
Note
Pour obtenir la meilleure compatibilité et les fonctionnalités les plus récentes, il est recommandé d’utiliser les dernières versions des deux packages ensemble.
Couvre-lit
Coverlet Microsoft Testing Platform Integration (coverlet.MTP) est une extension native pour Microsoft.Testing.Platform qui implémente des coverlet.collector fonctionnalités.
Ajoutez le package NuGet coverlet.MTP à votre project de test :
dotnet add package coverlet.MTP
Pour collecter la couverture du code, exécutez vos tests avec l’indicateur --coverlet :
dotnet test --coverlet
Ou exécutez votre exécutable de test avec l’indicateur --coverlet :
dotnet exec <test-assembly.dll> --coverlet
Après l’exécution du test, un coverage.json fichier contenant les résultats est généré dans le répertoire actif.
Options
| Choix | Descriptif |
|---|---|
--coverlet |
Activez la collecte de données de couverture du code. |
--coverlet-output-format <format> |
Formats de sortie pour le rapport de couverture. Formats pris en charge : json, , lcovopencover, cobertura, et teamcity. Indiquez plusieurs fois pour inclure davantage de formats. |
--coverlet-include <filter> |
Inclure des assemblages qui correspondent à des filtres, comme [Assembly]Type. Répétez l'opération plusieurs fois pour ajouter d’autres filtres. |
--coverlet-include-directory <path> |
Incluez des répertoires supplémentaires pour les fichiers sources. Spécifiez plusieurs fois pour ajouter de nouveaux répertoires. |
--coverlet-exclude <filter> |
Exclure des assemblies qui correspondent à des filtres, tels que [Assembly]Type. Répétez l'opération plusieurs fois pour ajouter d’autres filtres. |
--coverlet-exclude-by-file <pattern> |
Excluez les fichiers sources qui correspondent aux modèles glob. Répétez plusieurs fois la spécification pour ajouter davantage de motifs. |
--coverlet-exclude-by-attribute <attribute> |
Exclure des méthodes ou des classes décorées avec des attributs spécifiques. Répétez plusieurs fois la spécification pour ajouter des attributs supplémentaires. |
--coverlet-include-test-assembly |
Incluez l'assemblage de test dans le rapport de couverture. |
--coverlet-single-hit |
Limitez le nombre d'occurrences à un pour chaque emplacement dans le code. |
--coverlet-skip-auto-props |
Ignorez les propriétés implémentées automatiquement dans la couverture. |
--coverlet-does-not-return-attribute <attribute> |
Attributs qui marquent les méthodes comme ne retournant pas. Répétez plusieurs fois la spécification pour ajouter des attributs supplémentaires. |
--coverlet-exclude-assemblies-without-sources <value> |
Exclure des assemblys sans code source. Valeurs : MissingAll, MissingAnyet None. |
Pour plus d’informations, consultez la documentation coverlet.MTP.