Téléchargez cette extension depuis Visual Studio Market Place (vs 2019), Visual Studio Market Place (vs 2022) ou téléchargez-la à partir des versions. Les anciennes versions peuvent être obtenues ici.
Pour .Net - que les adaptateurs de test sont des packages nuget. Par exemple, l’extension NUnit Test Adapter n’est pas suffisante.
Fine Code Coverage fournit une couverture de code à l’aide de l’un des 3 outils de couverture différents. Dans les versions précédentes, deux outils de couverture étaient utilisés, OpenCover et Coverlet, qui seront appelés « ancienne couverture ».
Microsoft propose désormais une solution de couverture gratuite que vous pouvez choisir d'utiliser en définissant l'option d'énumération Visual Studio Fine Code Coverage RunMsCodeCoverage. Ce sera probablement l’outil de couverture préféré de la plupart des développeurs. Il est actuellement en version bêta.
Avec l'ancienne couverture, il était possible pour la FCC de fournir une abstraction des options d'exclusion/inclusion de chaque outil. Cette abstraction ne fonctionne pas pour la couverture du code MS.
Ainsi, vous constaterez qu’il existe des options de configuration distinctes pour la couverture MS par rapport à l’ancienne couverture et des options communes aux deux. Des exclusions et des inclusions au niveau de l'assemblage peuvent être réalisées - voir ExcludeAssemblies et IncludeAssemblies. La configuration est (principalement) déterminée à partir des options de Visual Studio, des fichiers finecodecoverage-settings.xml et des propriétés du projet msbuild. Tous ces paramètres sont facultatifs. Pour les options ayant une portée de projet, ces paramètres forment une hiérarchie dans laquelle les niveaux inférieurs remplacent ou, pour les collections, remplacent ou fusionnent avec le niveau supérieur. Ceci est décrit en détail plus loin.
Quel que soit l'outil de couverture utilisé, le processus commence par la réaction de la FCC à l'explorateur de tests dans Visual Studio. L'un des trois outils de couverture fournit les résultats de couverture et les résultats peuvent être ouverts à partir des boutons de la fenêtre de l'outil de couverture de code fin. Cette couverture n'est pas dynamique et représente la couverture obtenue lors de la dernière exécution de tests. Lorsque la couverture devient obsolète, vous pouvez cliquer sur le bouton « FCC Clear UI » dans Outils ou exécuter à nouveau la couverture.
Des détails sur la progression de la FCC avec la couverture du code peuvent être trouvés dans l'onglet Journal de couverture de la fenêtre de l'outil de couverture du code fin, avec des journaux plus détaillés dans le volet de la fenêtre de sortie FCC. Si vous rencontrez des problèmes, fournir les journaux de la fenêtre de sortie aidera à comprendre la nature du problème.
Présentez un seul rapport unifié dans la fenêtre de l’outil de couverture du code fin. Le rapport montre la couverture des lignes et des succursales et les points chauds à risque avec la possibilité d'ouvrir vos fichiers de classe.
Marges colorées pour indiquer l’état de couverture de votre code. Les lignes de code instrumentées (incluses et analysables) sont soit couvertes, découvertes ou partiellement couvertes, ce qui signifie que toutes les branches n'ont pas été exécutées.
FCC fournit le concept de régions sales où le code précédemment instrumenté n'affichera plus l'état instrumenté une fois que vous aurez modifié le code.
Pour C# et Visual Basic, fournit des informations supplémentaires sur la couverture :
FCC vous permet également de voir le code qui n'a pas été inclus dans la couverture et les nouvelles lignes qui ont été ajoutées depuis la dernière exécution de la couverture.
La coloration des lignes sales et nouvelles doit être activée dans les options.
Si vous le souhaitez, les lignes peuvent également être mises en surbrillance en définissant les options Visual Studio disponibles. Lisez la suite pour plus de détails.
Les couleurs peuvent être contrôlées via Visual Studio / Outils / Options / Environnement / Polices et couleurs / Editeur de texte / Éléments d'affichage :
Pour Visual Studio Community, Professional et Enterprise, vous pouvez utiliser les paramètres
Couverture Zone touchée FCC
Couverture Zone partiellement touchée FCC
Zone de couverture non touchée FCC
Couverture Zone sale FCC
Zone de couverture des nouvelles lignes FCC
Zone de couverture non incluse FCC
Pour les versions qui fournissent les éléments ci-dessous, FCC les utilisera par défaut sur les éléments FCC équivalents afin que les couleurs définies dans les thèmes puissent être utilisées. Si vous souhaitez être cohérent pour les 5 éléments disponibles, vous pouvez définir UseEnterpriseFontsAndColors sur false.
Zone de couverture non touchée
Zone de couverture partiellement touchée
Zone touchée par la couverture
Vous pouvez désactiver la coloration de l’éditeur en définissant l’option Visual Studio EditorCoverageColouringMode sur Off. Vous pouvez également définir l’option sur DoNotUseRoslynWhenTextChanges en cas de problème de performances. Ce faisant, la coloration des nouvelles lignes ne sera pas aussi bonne. Si vous passez à l’une des options EditorCoverageColouringMode, vous devrez réexécuter la couverture.
Vous pouvez basculer la coloration de l'éditeur. FCC ajoute un bouton de menu, Toggle Indicators, dans le menu Outils. Vous pouvez également créer un raccourci clavier - Outils / Options / Environnement / Clavier, afficher les commandes contenant des "ToggleIndicators".
Pour les composants Blazor avec des blocs @code, des lignes de couverture peuvent être générées en dehors de ces régions. Lorsque l'arborescence syntaxique de Roslyn est disponible pour FCC, vous pouvez définir l'option BlazorCoverageLinesFromGeneratedSource sur true pour limiter les lignes de couverture du fichier .razor à celles de la source générée.
FCC suit l'éditeur de Visual Studio et enregistre ces informations lorsqu'un fichier est fermé. Si lors de la réouverture d'un fichier, le texte a changé en dehors d'une fenêtre de document, il n'y aura aucune marque de couverture pour ce fichier car les lignes de couverture ne sont plus censées être correctes.
Il n'y aura également aucune marque d'éditeur si vous modifiez un fichier pendant que la FCC collecte la couverture.
Avec l'ancienne couverture, FCC devait copier votre dll de test et vos dépendances et exécuter OpenCover ou Coverlet sur ces fichiers. Ce n'est pas nécessaire avec la couverture de code MS. L'ancienne couverture attendrait la fin des tests avant de démarrer l'outil de couverture pour réexécuter tous les tests. Ce n'est pas nécessaire avec la couverture de code MS. L'ancienne couverture était basée sur chaque test. La couverture du code MS est la couverture des tests que vous sélectionnez dans l'explorateur de tests.
Prend en charge le C++ ! Notez que FCC n'a pas été correctement testé avec des projets C++, mais avec une simple classe C++, testée avec Google Test, FCC fournit une couverture.
Tout d'abord, vous devez modifier l'option RunMsCodeCoverage de No.
La couverture du code MS nécessite un fichier runsettings configuré de manière appropriée pour la couverture du code. Cela nécessite que vous disposiez du package de couverture de code ms et que vous l'ayez pointé avec l'élément TestAdaptersPaths ainsi que la spécification du collecteur de données ms. Les exclusions et inclusions sont également spécifiées dans les paramètres d'exécution. Je ne pense pas que la documentation soit suffisamment claire sur la façon dont cela fonctionne, vous voudrez peut-être examiner ce problème.
La FCC ne vous oblige pas à le faire. Si vous ne fournissez pas de paramètres d'exécution et que RunMsCodeCoverage est Oui, FCC en générera un et écrira l'entrée nécessaire dans le fichier de projet.
Notez que l'ouverture d'un fichier de projet de test dans Visual Studio pendant l'exécution de tests peut entraîner un avertissement de conflit lorsque la FCC supprime l'entrée à la fin du test. Si RunMsCodeCoverage est IfInRunSettings, alors si le projet a des paramètres d'exécution qui incluent l'élément collecteur de données ms configuré correctement, FCC traitera les résultats collectés.
FCC inclut le package de couverture de code ms et créera le fichier runsettings nécessaire pour chaque projet de test exécuté à partir de la fenêtre de l'explorateur de tests. Les exclusions et inclusions proviendront des paramètres combinés, de manière similaire à l’ancienne couverture. Comme la couverture du code MS utilise des expressions régulières et dispose de différentes méthodes d'exclusion/inclusion pour Coverlet et OpenCover, il existe des options Visual Studio spécifiques à MS et des éléments associés.
Comme FCC fournit un fichier runsettings pour chaque projet de test (si vous n'avez pas fourni de solution à l'échelle de la solution ou spécifique au projet), elle doit écrire l'élément RunSettingsFilePath dans le fichier de projet.
Bien que FCC efface la valeur de cet élément du fichier de projet, il est toujours présent.
FCC crée les paramètres d'exécution à partir d'un modèle en utilisant le remplacement de chaîne. Si vous le souhaitez, vous pouvez fournir vos propres modèles. FCC recherchera fcc-ms-runsettings-template.xml dans le répertoire du projet ou dans le répertoire de la solution. Votre modèle doit être un document XML valide mais n'a pas besoin de fournir tous les éléments de paramètres d'exécution. FCC ajoutera les éléments remplaçables ResultsDirectory et TestAdaptersPaths (et l'élément conteneur RunConfiguration si nécessaire) s'ils ne sont pas présents. FCC ajoutera également les éléments remplaçables ms DataCollector / Configuration / CodeCoverage s’ils ne sont pas présents. Il ajoutera également les éléments CodeCoverage recommandés par non-exclusion/inclusion AllowLowIntegrityProcesses, CollectFromChildProcesses, CollectAspDotNet et UseVerifiableInstrumentation s'ils ne sont pas fournis. UseVerifiableInstrumentation sera faux pour .Net Framework. Pour voir les paramètres d'exécution générés, utilisez l'élément RunSettingsFilePath dans le fichier projet.
Pour un modèle personnalisé, qui fournit ses propres éléments qui auraient autrement été fournis par FCC, pour participer au remplacement du modèle, vous devez ajouter des chaînes du type %fcc_replace%.
Les exclusions et les inclusions suivent le format "%fcc_modulepaths_exclude%". Pour que FCC fournisse le chemin de couverture du code MS fourni par FCC à TestAdaptersPaths, utilisez %fcc_testadapter%.
Il est également possible d'utiliser votre propre fichier runsettings et de demander à FCC de l'y ajouter et de le remplacer. FCC veillera à ce que l'élément TestAdaptersPaths soit présent ainsi que le collecteur de données ms. Contrairement à un modèle, si le collecteur de données ms est présent, seul le remplacement est appliqué au fichier XML.
La couverture du code MS fournit un élément Configuration / CodeCoverage par défaut s'il n'est pas fourni. Il ajoutera également certaines exclusions par défaut si elles ne sont pas présentes ou les fusionnera, sauf si vous ajoutez l'attribut mergeDefaults='false'. Par exemple, les attributs excluent ExcludeFromCodeCoverageAttribute. Si vous êtes intéressé, consultez ...AppDataLocalFineCodeCoveragemsCodeCoverage_version_buildnetstandard1.0Microsoft.VisualStudio.TraceDataCollector.dll et DynamicCoverageDataCollector.
Veuillez vérifier le dépannage avant de signaler un problème.
Les DLL sont copiées dans un sous-dossier du dossier de sortie du projet, ce qui peut affecter vos tests. L’alternative consiste à définir l’option AdjacentBuildOutput sur true. La couverture est fournie soit par OpenCover pour les projets de style ancien, soit par Coverlet pour les projets SDK de nouveau style. Bien que la FCC fournisse une abstraction sur les deux, il est possible d'ignorer les différences entre les deux, mais il existe des circonstances dans lesquelles il est important d'être conscient de l'outil de couverture qui sera exécuté. Ceci est plus évident lorsque Coverlet est utilisé, veuillez lire la suite pour plus de détails.
L'autre scénario serait celui où vous souhaitez utiliser une version spécifique de l'outil de couverture. Cela peut être configuré.
Les outils de couverture exploités par FCC sont installés par défaut dans le répertoire FineCodeCoverage au sein de Environment.SpecialFolder.LocalApplicationData
. Cela peut être modifié avec l'option ToolsDirectory Visual Studio. Assurez-vous que ce répertoire contenant existe et au redémarrage, les outils y seront installés.
Exécutez un(des) test(s) unitaire(s) et...
La hiérarchie est la suivante :
a) Options de Visual Studio
b) fichiers finecodecoverage-settings.xml
Ceux-ci sont trouvés en remontant la structure des répertoires à partir du répertoire du projet. En appliquant l'attribut topLevel='true' à l'élément racine, la marche s'arrête.
Étant donné finecodecoverage-settings.xml dans le répertoire du projet et finecodecoverage-settings.xml dans le répertoire de la solution, la hiérarchie est :
Options de Visual Studio
Niveau de la solution finecodecoverage-settings.xml
finecodecoverage-settings.xml au niveau du projet
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
c) fichier de projet msbuild
Il existe deux manières de fournir ces paramètres. Directement dans le fichier projet
<PropertyGroup Label="FineCodeCoverage">
<Enabled>
True
</Enabled>
<Exclude>
[ThirdParty.*]*
[FourthParty]*
</Exclude>
<Include>
[*]*
</Include>
<ExcludeByFile>
**/Migrations/*
**/Hacks/*.cs
</ExcludeByFile>
<ExcludeByAttribute>
MyCustomExcludeFromCodeCoverage
</ExcludeByAttribute>
<IncludeTestAssembly>
True
</IncludeTestAssembly>
<ModulePathsExclude>
.*Fabrikam.Math.UnitTest.dll
</ModulePathsExclude>
<!-- and more -->
</PropertyGroup>
Avec l'élément FineCodeCoverage.
<PropertyGroup>
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
</PropertyGroup>
Ceci est nécessaire si vous stockez les paramètres du projet en dehors de votre fichier de projet et utilisez msbuild Import.
Cela est également nécessaire si vous souhaitez que l'élément de configuration fusionne avec celui du niveau supérieur, car msbuild ne prend pas en charge les attributs personnalisés.
La valeur par défaut consiste à écraser chaque propriété de collection. Cela peut être modifié pour tous les paramètres en définissant defaultMerge='true' sur l'élément racine.
Si vous fournissez l'attribut de fusion sur un élément de paramètre, il sera utilisé.
Ce n’est pas transitif.
<PropertyGroup>
<FCCExcludeFromCodeCoverage/>
</PropertyGroup>
<PropertyGroup>
<UseDataCollector/>
</PropertyGroup>
Coverlet a différents « pilotes ». Dans le passé, Fine Code Coverage utilisait uniquement le pilote de la console Coverlet. Cela comporte certains problèmes qui y sont associés. Si vous rencontrez une couverture de 0 % ou une couverture incohérente, il est désormais possible de passer au pilote Data Collector. C'est le meilleur pilote mais il ne peut pas être utilisé pour tous les projets. Pour l'instant, il s'agit d'une option d'adhésion. À l'avenir, la couverture du code des amendes déterminera le conducteur approprié. Veuillez consulter la documentation du coverlet pour connaître la prise en charge des versions.
Notez qu’il n’est pas nécessaire d’ajouter le package nuget coverlet.collector car la FCC le fournit en interne.
Fine Code Coverage utilisera le pilote du collecteur de données dans deux circonstances :
Les paramètres du collecteur de données Coverlet peuvent être trouvés ici. Si vous utilisez l'option 2) ci-dessus, les paramètres communs (Exclusions et inclusions) seront générés à partir des propriétés du projet (ci-dessus) et des options globales de Visual Studio (voir ci-dessous), les propriétés du projet étant prioritaires. Si vous utilisez l'option 1), les options de projet et globales ne seront utilisées que lorsqu'un élément de configuration des paramètres communs est absent et que l'option RunSettingsOnly (voir ci-dessous) a été modifiée sur false.
Option | Description |
---|---|
Commun | |
ÉditeurCoverageColoringMode | Réglez sur Off ou sur DoNotUseRoslynWhenTextChanges en cas de problème de performances. |
BlazorCoverageLinesFromGeneratedSource | Défini sur true pour limiter les lignes de couverture du fichier .razor à celles de la source générée (si disponible) |
ShowEditorCoverage | Définir sur false pour désactiver tous les indicateurs de couverture de l'éditeur |
ShowCoverageInGlyphMargin | Définir sur false pour éviter les marques de couverture dans la marge du glyphe |
ShowCoveredInGlyphMargin | Définir sur false pour éviter les marques couvertes dans la marge du glyphe |
ShowUncoveredInGlyphMargin | Défini sur false pour éviter les marques découvertes dans la marge du glyphe |
ShowPartiallyCoveredInGlyphMargin | Défini sur false pour éviter les marques partiellement recouvertes dans la marge du glyphe |
ShowDirtyInGlyphMargin | Définir sur true pour afficher les marques sales dans la marge du glyphe |
ShowNewInGlyphMargin | Définir sur true pour afficher les nouvelles marques de ligne dans la marge du glyphe |
ShowCoverageInOverviewMargin | Définir sur false pour éviter les marques de couverture dans la marge d'aperçu |
ShowCoveredInOverviewMargin | Définir sur false pour éviter les marques masquées dans la marge d'aperçu |
ShowUncoveredInOverviewMargin | Définir sur false pour éviter les marques découvertes dans la marge d'aperçu |
ShowPartiallyCoveredInOverviewMargin | Défini sur false pour éviter les marques partiellement couvertes dans la marge d'aperçu |
ShowDirtyInOverviewMargin | Définir sur true pour afficher les marques sales dans la marge d'aperçu |
ShowNewInOverviewMargin | Définir sur true pour afficher les nouvelles marques de ligne dans la marge d'aperçu |
ShowLineCoverageHighlighting | Définir sur true pour permettre la mise en évidence de la ligne de couverture |
ShowLineCoveredHighlighting | Définir sur false pour empêcher la mise en surbrillance des lignes couvertes |
ShowLineUncoveredMise en évidence | Définir sur false pour empêcher la mise en surbrillance des lignes non couvertes |
ShowLinePartiallyCoveredMise en évidence | Définir sur false pour empêcher la mise en surbrillance des lignes partiellement couvertes |
ShowLineDirtyMise en évidence | Définir sur true pour afficher la mise en surbrillance des lignes sales |
ShowLineNewHighlighting | Définir sur true pour afficher la nouvelle ligne en surbrillance |
UtiliserEnterpriseFontsAndColors | Définir sur false pour utiliser les éléments de polices et de couleurs FCC |
ShowToolWindowToolbar | Définissez sur false pour masquer la barre d'outils dans la fenêtre d'outils. Nécessite le redémarrage de Visual Studio. La barre d'outils comporte des boutons permettant d'afficher le XML Cobertura et les points chauds de risque. |
Nom du répertoire de sortie de la solution FCC | Pour que la sortie fcc soit visible dans un sous-dossier de votre solution, indiquez ce nom |
OutilsRépertoire | Dossier dans lequel copier le sous-dossier des outils. Doit déjà exister. Nécessite le redémarrage de VS. |
SeuilForCyclomaticComplexity | Lorsque la complexité cyclomatique dépasse cette valeur pour une méthode, celle-ci sera présente dans l'onglet Points chauds à risque. |
StickyCoverageTable | Définissez sur true pour que la table de couverture ait une tête collante. |
Classes avec espace de noms | Définissez sur false pour afficher les types dans le rapport sous forme abrégée. Affecte le regroupement. |
Qualification de l'espace de noms | Contrôlez la qualification des types dans le rapport lorsque NamespacedClasses est vrai. FullyQualified - toujours pleinement qualifié. AlwaysUnqualified - toujours non qualifié. UnqualifiedByNamespace - non qualifié lors du regroupement par espace de noms. QualifiedByNamespaceLevel : omet les parties de l'identifiant du premier niveau de regroupement. Réduit l’espace tout en conservant l’unicité. |
MasquerEntièrementCouvert | Définissez sur true pour masquer les classes, les espaces de noms et les assemblys entièrement couverts. |
Masquer0Couverture | Définissez sur true pour masquer les classes, les espaces de noms et les assemblys qui ont une couverture de 0 %. |
Masquer0Couverçable | Définissez sur false pour afficher les classes, les espaces de noms et les assemblys qui ne sont pas couverts. |
Activé | Spécifie si la sortie de couverture est activée ou non |
DésactivéPas de couverture | Définir sur false pour VS Option Enabled=false pour ne pas désactiver la couverture |
Exécuter quand les tests échouent | Par défaut, la couverture s'exécute lorsque les tests échouent. Définissez sur false pour éviter cela. Ne peut pas être utilisé avec RunInParallel |
RunWhenTestsExceed | Spécifiez une valeur pour exécuter uniquement la couverture en fonction du nombre de tests en cours d'exécution. Ne peut pas être utilisé avec RunInParallel |
RunMsCodeCoverage | Remplacez IfInRunSettings pour collecter uniquement avec les paramètres d'exécution configurés. Oui pour la génération des paramètres d'exécution. |
InclureTestAssembly | Spécifie s'il faut signaler la couverture du code de l'assembly de test |
Inclure des projets référencés | Définissez sur true pour ajouter tous les projets directement référencés à Include. |
Inclure les assemblages | Fournissez une liste des assemblages à inclure dans la couverture. Le nom de la DLL sans extension est utilisé pour la correspondance. |
Exclure les assemblages | Fournissez une liste des assemblages à exclure de la couverture. Le nom de la DLL sans extension est utilisé pour la correspondance. |
OpenCover / Couvre-lit | |
AdjacentBuildOutput | Si vos tests dépendent de leur chemin, définissez-le sur true. |
Exclure | Filtrer les expressions pour exclure des modules et des types spécifiques (plusieurs valeurs) |
Inclure | Filtrer les expressions pour inclure des modules et des types spécifiques (plusieurs valeurs) |
ExclureParFichier | OpenCover utilise la correspondance de caractères génériques *. Coverlet utilise la globalisation du système de fichiers |
ExclureByAttribute | Excluez le code attribué au niveau de l’assembly, du type et de la méthode. Ajoutez des types d'attributs pleinement qualifiés ou non qualifiés. |
Exécuter en parallèle | Par défaut, les tests OpenCover / Coverlet sont exécutés puis la couverture est effectuée. Définir sur true pour exécuter la couverture immédiatement |
Couverture du code Mme | Chacun des éléments ci-dessous est un tableau d'expressions régulières à transformer en éléments runsettings, voir |
ModulePathsExclure | Exclure - Correspond aux assemblys spécifiés par le nom de l'assembly ou le chemin du fichier. |
ModulePathsInclude | Inclure : correspond aux assemblys spécifiés par le nom de l’assembly ou le chemin du fichier. |
Noms de l'entrepriseExclure | Exclure : fait correspondre les assemblys par l'attribut Société. |
Noms de l'entrepriseInclure | Inclure : fait correspondre les assemblys par l'attribut Société. |
Exclure les PublicKeyTokens | Exclure : correspond aux assemblys signés par le jeton de clé publique. |
Les PublicKeyTokens incluent | Inclure : correspond aux assemblys signés par le jeton de clé publique. |
SourcesExclure | Exclure : fait correspondre les éléments par le nom de chemin du fichier source dans lequel ils sont définis. |
SourcesInclure | Inclure : fait correspondre les éléments par le nom de chemin du fichier source dans lequel ils sont définis. |
AttributsExclure | Exclure : correspond aux éléments qui ont l'attribut spécifié. Spécifiez le nom complet de l'attribut |
AttributsInclure | Inclure - Correspond aux éléments qui ont l'attribut spécifié. Spécifiez le nom complet de l'attribut |
FonctionsExclure | Exclure : fait correspondre les procédures, fonctions ou méthodes par nom complet, y compris la liste de paramètres. |
FonctionsInclure | Inclure : fait correspondre les procédures, fonctions ou méthodes par nom complet, y compris la liste de paramètres. |
Couverture | |
Exécuter les paramètres uniquement | Spécifiez false pour les options globales et de projet à utiliser pour les éléments de configuration du collecteur de données de couverture lorsqu'elles ne sont pas spécifiées dans les paramètres d'exécution. |
CoverletCollectorDirectoryPath | Spécifiez le chemin d'accès au répertoire contenant les fichiers du collecteur de couvertures si vous avez besoin de fonctionnalités que la version FCC ne fournit pas. |
CoverletConsoleLocal | Spécifiez true pour utiliser vos propres outils dotnet lors de l'installation locale de la console coverlet. |
CoverletConsoleCustomPath | Spécifiez le chemin d’accès à l’exe de la console coverlet si vous avez besoin de fonctionnalités que la version FCC ne fournit pas. |
CoverletConsoleGlobal | Spécifiez true pour utiliser votre propre installation globale d’outils dotnet de la console coverlet. |
Les paramètres "CoverletConsole" ont priorité sur Local / CustomPath / Global. | |
Couverture ouverte | |
OpenCoverRegister | Changer par défaut si la détermination FCC du chemin 32 ou du chemin 64 est incorrecte. |
OuvrirCoverTarget | Fournissez votre propre cible si nécessaire. |
OpenCoverTargetArgs | Si vous fournissez votre propre cible, vous pouvez également fournir des arguments supplémentaires. FCC fournit le chemin de la dll de test. |
OpenCoverCustomPath | Spécifiez le chemin pour ouvrir cover exe si vous avez besoin de fonctionnalités que la version FCC ne fournit pas. |
SeuilForNPathComplexity | Lorsque la complexité npath dépasse cette valeur pour une méthode, la méthode sera présente dans l'onglet Zones sensibles à risque. |
SeuilForCrapScore | Lorsque le score de merde dépasse cette valeur pour une méthode, celle-ci sera présente dans l'onglet des zones à risque. |
Vous souhaiterez probablement définir IncludeReferencedProjects sur true. Cela garantira que vous n’obtiendrez pas de couverture pour les frameworks de test – uniquement pour votre code.
Coverlet et OpenCover utilisent des expressions de filtre. Filtrer les expressions
Caractères génériques
* => correspond à zéro ou plusieurs caractères Exemples
[*]* => Tous les types dans tous les assemblages.
[coverlet.*]Coverlet.Core.Coverage => La classe Coverage dans l'espace de noms Coverlet.Core appartenant à tout assembly qui correspond à coverlet.* (par exemple coverlet.core)
[*]Coverlet.Core.Instrumentation.* => Tous les types appartenant à l'espace de noms Coverlet.Core.Instrumentation dans n'importe quel assembly
[coverlet.*.tests]* => Tous les types dans n'importe quel assemblage commençant par coverlet. et se terminant par .tests
Les options « Exclure » et « Inclure » peuvent être utilisées ensemble, mais « Exclure » est prioritaire.
La couverture du code Mme utilise des expressions rationnelles. Vous pouvez inclure ou exclure des assemblys ou des types et membres spécifiques de l’analyse de couverture de code. Si la section Inclure est vide ou omise, tous les assemblys chargés et auxquels sont associés des fichiers PDB sont inclus. Si un assembly ou un membre correspond à une clause dans la section Exclure, il est alors exclu de la couverture du code. La section Exclure est prioritaire sur la section Inclure : si un assembly est répertorié à la fois dans Inclure et Exclure, il ne sera pas inclus dans la couverture du code.
Vous pouvez ignorer une méthode ou une classe entière de la couverture du code en appliquant l'attribut [ExcludeFromCodeCoverage] présent dans l'espace de noms System.Diagnostics.CodeAnalysis.
Pour .Net (et non .Net Framework), cet attribut peut être appliqué au niveau de l'assembly.
Pour .Net Framework, voir FCCExcludeFromCodeCoverage ci-dessus pour des fonctionnalités similaires.
Pour ignorer le code attribué à un type différent :
Vous pouvez également ignorer des attributs supplémentaires en les ajoutant à la liste « ExcludeByAttribute » Pour Coverlet/OpenCover, ajoutez à l'ajout à la liste « ExcludeByAttribute » (complètement qualifié ou non qualifié). Pour la couverture du code MS, ajoutez à la liste « AttributsExclude ». Cela utilise la correspondance regex.
Sorties FCC, par défaut, dans le dossier Debug de chaque projet de test. Si vous préférez, vous pouvez spécifier un dossier devant contenir les fichiers générés en interne et utilisés par FCC. Les deux méthodes ci-dessous recherchent un répertoire contenant un fichier .sln dans un répertoire ascendant du répertoire contenant le premier fichier de projet de test. Si un tel répertoire de solutions est trouvé, la logique s'applique.
Si le répertoire de la solution a un sous-répertoire fcc-output alors il sera automatiquement utilisé.
Alternativement, si vous fournissez FCCSolutionOutputDirectoryName dans les options, le répertoire sera créé si nécessaire et utilisé.
Consultez les directives de contribution si vous souhaitez contribuer à ce projet.
Pour cloner et créer ce projet vous-même, assurez-vous d'installer l'extension Extensibility Essentials pour Visual Studio qui active certaines fonctionnalités utilisées par ce projet.
Apache2.0
Couverture
Couverture ouverte
Générateur de rapports
Fournisseur | Taper | Lien |
---|---|---|
Paypal | Une fois | |
Libérapay | Récurrent |