Partager via


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.

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.

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