Freigeben über


MSTest-Codeanalyse

Regeln der MSTest-Analyse (MSTESTxxxx) analysieren Ihren C#- oder Visual Basic-Code hinsichtlich Sicherheit, Leistung, Design und anderen Problemen.

Tipp

Wenn Sie Visual Studio verwenden, verfügen viele Analysetoolregeln über zugehörige Codekorrekturen, die Sie zur Problembehebung anwenden können. Codekorrekturen werden im Fehlerbehebungsmenü (Glühbirnensymbol) angezeigt.

Die Regeln sind in Kategorien unterteilt, z. B. Leistung und Nutzung.

Ab MSTest.TestFramework 3.7 ist das NuGet-Paket "MSTest.Analyzers NuGet" eine Abhängigkeit des Frameworks. Für frühere Versionen müssen Sie MSTest Metapackage verwenden oder einen Paketverweis für MSTest.Analyzers explizit hinzufügen.

MSTestAnalysisMode

Ab MSTest 3.8 ist eine MSBuild-Eigenschaft mit dem Namen MSTestAnalysisMode verfügbar, um zu bestimmen, welche Analysegeräte zu welchem Schweregrad aktiviert sind.

Tipp

Um zu sehen, welche Regeln für jeden Modus bei welcher Schwere aktiviert sind, können Sie im NuGet-Cache zum Paket der interessierenden Version navigieren, das globalconfigs-Verzeichnis suchen und die .globalconfig-Datei öffnen, die dem Analysemodus entspricht. Weitere Informationen zum Suchen des NuGet-Cacheverzeichnisses finden Sie unter Verwalten der globalen Pakete, des Caches und der temporären Ordner. Finden Sie in diesem Verzeichnis zuerst das mstest.analyzers-Verzeichnis, dann die Version (3.8 und höher), und schließlich globalconfigs. Alternativ können Sie das NuGet-Paket der interessanten Version von nuget.org herunterladen und im NuGet-Paket-Explorer (Windows-App) anzeigen oder direkt in der Web App-Version des NuGet-Paket-Explorersanzeigen.

Die verfügbaren Werte für diese Eigenschaft:

None

Dieser Wert legt alle Analysatoren auf none Schweregrad fest und deaktiviert alle. Anschließend können Sie einzelne Analyzer mithilfe von .editorconfig oder .globalconfig Dateien aktivieren.

Default

Diese Einstellung folgt dem standarddokumentierten Verhalten für jede Regel.

  • Standardmäßig aktivierte Regeln verwenden den Standardschweregrad.
  • Standardmäßig deaktivierte Regeln verwenden none Schweregrad.

Hinweis

Regeln, die standardmäßig als Warnungen aktiviert sind, sind Verstöße, die voraussichtlich zur Laufzeit Probleme verursachen.

Dies ist der Modus, den die meisten Entwickler verwenden. Regeln, die standardmäßig mit dem Schweregrad Info (suggestion) aktiviert sind, werden zu Warnungen eskaliert. Außerdem können bestimmte Regeln sowohl im Modus Recommended als auch im Modus All zu Fehlern führen. Zum Beispiel: MSTEST0003: Testmethoden müssen ein gültiges Layout haben wird in den Modi Recommended und All zu einem Fehler eskaliert.

All

Dieser Modus ist aggressiver als Recommended. Alle Regeln werden als Warnungen aktiviert. Wie bereits für den Recommended-Modus erläutert, können bestimmte Regeln sowohl im Modus Recommended als auch im Modus All Fehler auslösen. Zum Beispiel: MSTEST0003: Testmethoden müssen ein gültiges Layout haben wird in den Modi Recommended und All zu einem Fehler eskaliert.

Kategorien

Entwurfsregeln

Die Designregeln helfen Ihnen dabei, Testsuiten zu erstellen und zu verwalten, die dem richtigen Design und bewährten Methoden entsprechen.

Leistungsregeln

Leistungsregeln unterstützen Hochleistungstests.

Unterdrückungsregeln

Unterdrückungsregeln unterstützen das Unterdrücken der Diagnose aus anderen Regeln.

Nutzungsregeln

Verwendungsregeln unterstützen die ordnungsgemäße Verwendung von MSTest.

MSTESTEXP

Mehrere APIs von MSTest sind mit dem Attribut ExperimentalAttribute ausgezeichnet. Dieses Attribut zeigt an, dass die API experimentell ist und in zukünftigen Versionen von MSTest entfernt oder geändert werden kann. Das Attribut wird verwendet, um APIs zu identifizieren, die noch nicht stabil sind und möglicherweise nicht für die Produktionsverwendung geeignet sind.

Die MSTESTEXP-Diagnose warnt Sie vor der Verwendung einer experimentellen API in Ihrem Code. Um diese Diagnose mit SuppressMessageAttribute zu unterdrücken, fügen Sie Ihrem Projekt den folgenden Code hinzu:

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("MSTESTEXP", "Justification")]

Alternativ können Sie diese Diagnose mit einer Präprozessoranweisung unterdrücken, indem Sie ihrem Projekt den folgenden Code hinzufügen:

#pragma warning disable MSTESTEXP
        // API that is causing the warning.
#pragma warning restore MSTESTEXP