Analyse du code MSTest
Les règles d’analyse MSTest (« MSTESTxxxx ») inspectent votre code C# ou Visual Basic pour détecter les problèmes de sécurité, de performance, de conception et autres.
Conseil
Si vous utilisez Visual Studio, de nombreuses règles d’analyseur ont des correctifs de code associés que vous pouvez appliquer pour corriger le problème. Les correctifs de code sont affichés dans le menu d’icône de l’ampoule.
Les règles sont organisées en catégories telles que l’utilisation des performances...
À partir de MSTest.TestFramework 3.7, le package NuGet MSTest.Analyzers est une dépendance du framework. Pour les versions antérieures, vous devez utiliser le metapackage MSTest
ou ajouter explicitement une référence de package pour MSTest.Analyzers
.
MSTestAnalysisMode
À partir de MSTest 3.8, une propriété MSBuild nommée MSTestAnalysisMode
est disponible pour déterminer quels analyseurs sont activés et à quel niveau de gravité.
Conseil
Pour voir quelles règles sont activées et à quel niveau de gravité pour chaque mode, vous pouvez naviguer jusqu'au package de la version qui vous intéresse dans le cache NuGet, localiser le répertoire globalconfigs
et ouvrir le fichier .globalconfig
correspondant au mode d'analyse.
Pour plus d'informations sur la recherche du répertoire du cache NuGet, consultez la section Gestion des packages globaux, du cache et des dossiers temporaires. À partir de ce répertoire, recherchez le répertoire mstest.analyzers
, puis la version (3.8 et supérieure), puis globalconfigs
.
Vous pouvez également télécharger le package NuGet de la version qui vous intéresse à partir de nuget.org
et le visualiser dans NuGet Package Explorer (application Windows), ou le visualiser directement dans la version Web de NuGet Package Explorer.
Valeurs disponibles pour cette propriété :
None
Cette valeur attribue à tous les analyseurs un niveau de gravité none
, ce qui les désactive tous. Vous pouvez ensuite activer des analyseurs individuels à l'aide de fichiers .editorconfig
ou .globalconfig
.
Default
Ce paramètre suit le comportement par défaut documenté pour chaque règle.
- Les règles activées par défaut utiliseront leur gravité par défaut.
- Les règles qui sont désactivées par défaut utiliseront une gravité de
none
.
Remarque
Les règles activées par défaut en tant qu'avertissements sont des violations susceptibles de causer des problèmes lors de l'exécution.
Recommended
C'est le mode que nous attendons de la plupart des développeurs. Les règles qui sont activées par défaut avec la gravité Info (suggestion
) sont transformées en avertissements. En outre, certaines règles peuvent être transformées en erreurs dans les modes Recommended
et All
Par exemple, MSTEST0003 : Les méthodes de test doivent avoir une présentation valide est transformé en erreur dans les modes Recommended
et All
.
All
Ce mode est plus agressif que Recommended
. Toutes les règles sont activées en tant qu'avertissements. Comme mentionné pour le mode Recommended
, certaines règles peuvent être transformées en erreurs dans les modes Recommended
et All
. Par exemple, MSTEST0003 : Les méthodes de test doivent avoir une présentation valide est transformé en erreur dans les modes Recommended
et All
.
Remarque
Les règles suivantes sont entièrement facultatives et ne sont pas activées dans les modes Default
, Recommended
ou All
:
- MSTEST0015 : la méthode de test ne doit pas être ignorée
- MSTEST0019 : Préférez les méthodes TestInitialize aux constructeurs
- MSTEST0020 : Préférer les constructeurs aux méthodes TestInitialize
- MSTEST0021 : Préférer Dispose aux méthodes TestCleanup
- MSTEST0022 : Préférez les méthodes TestCleanup aux méthodes Dispose
Catégories
Règles de conception
Les règles de conception vous aident à créer et à maintenir des suites de tests qui respectent la conception et les bonnes pratiques.
Règles de performances
Règles de performances prenant en charge les tests hautes performances.
Règles de suppression
Règles de suppression permettant de supprimer les diagnostics d’autres règles.
Règles d’utilisation
Les règles d’utilisation soutiennent l’utilisation appropriée de MSTest.
MSTESTEXP
Plusieurs API de MSTest sont décorées avec l'interface ExperimentalAttribute Cet attribut indique que l'API est expérimentale et peut être supprimée ou modifiée dans les versions futures de MSTest. Cet attribut est utilisé pour identifier les API qui ne sont pas encore stables et qui peuvent ne pas convenir à une utilisation en production.
Le diagnostic MSTESTEXP vous signale l'utilisation d'une API expérimentale dans votre code. Pour supprimer ce diagnostic avec le SuppressMessageAttribute
, ajoutez le code suivant à votre projet :
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("MSTESTEXP", "Justification")]
Vous pouvez également supprimer ce diagnostic à l'aide d'une directive de préprocesseur en ajoutant le code suivant à votre projet :
#pragma warning disable MSTESTEXP
// API that is causing the warning.
#pragma warning restore MSTESTEXP