Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwendungsregeln unterstützen die ordnungsgemäße Verwendung von MSTest-Attributen, -Methoden und -Mustern. Diese Regeln erfassen häufige Fehler und stellen sicher, dass Ihre Tests den Anforderungen und Konventionen des Frameworks entsprechen.
Regeln in dieser Kategorie
| Regel-ID | Title | Schweregrad | Fix verfügbar |
|---|---|---|---|
| MSTEST0002 | Die Testklasse sollte gültig sein. | Warnung | Yes |
| MSTEST0003 | Die Testmethode sollte gültig sein. | Warnung → Fehler* | Yes |
| MSTEST0005 | TestContext sollte gültig sein. | Warnung | Yes |
| MSTEST0007 | Verwenden Sie das Attribut für die Testmethode. | Warnung | Nein |
| MSTEST0008 | TestInitialize sollte gültig sein. | Warnung | Yes |
| MSTEST0009 | TestCleanup sollte gültig sein. | Warnung | Yes |
| MSTEST0010 | ClassInitialize sollte gültig sein. | Warnung | Yes |
| MSTEST0011 | ClassCleanup sollte gültig sein. | Warnung | Yes |
| MSTEST0012 | AssemblyInitialize sollte gültig sein. | Warnung | Yes |
| MSTEST0013 | AssemblyCleanup sollte gültig sein. | Warnung | Yes |
| MSTEST0014 | DataRow sollte gültig sein. | Warnung | Yes |
| MSTEST0017 | Assertionsargumente sollten in der richtigen Reihenfolge übergeben werden. | Info | Yes |
| MSTEST0018 | DynamicData sollte gültig sein. | Warnung | Yes |
| MSTEST0023 | Boolean-Assertion nicht negieren. | Info | Yes |
| MSTEST0024 | Speichern Sie keinen statischen TestContext. | Warnung | Nein |
| MSTEST0026 | Assertions-Argumente sollten bedingten Zugriff vermeiden. | Info | Nein |
| MSTEST0030 | Der Typ, der die Testmethode enthält, sollte eine Testklasse sein. | Warnung | Yes |
| MSTEST0031 | Verwenden Sie "System.ComponentModel.DescriptionAttribute" nicht. | Info | Yes |
| MSTEST0032 | Überprüfen Sie die immer wahre Assertion-Bedingung. | Info | Nein |
| MSTEST0034 | Verwenden Sie ClassCleanupBehavior.EndOfClass. | Info | Yes |
| MSTEST0035 | Verwenden Sie DeploymentItem mit Testmethode oder Testklasse. | Info | Nein |
| MSTEST0037 | Verwenden Sie die richtigen Assert-Methoden. | Info | Yes |
| MSTEST0038 | Vermeiden Sie Assert.AreSame mit Werttypen. | Info | Yes |
| MSTEST0039 | Verwenden Sie neuere Assert.Throws-Methoden. | Info | Yes |
| MSTEST0040 | Vermeiden Sie die Verwendung von Assertionen im asynchronen Void-Kontext. | Warnung | Nein |
| MSTEST0041 | Verwenden Sie bedingungsbasierte Attribute mit Testklasse. | Warnung | Nein |
| MSTEST0042 | Duplikat von DataRow. | Warnung | Nein |
| MSTEST0043 | Verwenden Sie das Wiederholungsattribut für die Testmethode. | Warnung → Fehler* | Yes |
| MSTEST0046 | Verwenden Sie Assert anstelle von StringAssert. | Info | Yes |
| MSTEST0048 | Verwendung der TestContext-Eigenschaft. | Warnung | Nein |
| MSTEST0049 | Flow Testkontext-Abbruchtoken. | Info | Yes |
| MSTEST0050 | Die globale Prüfvorrichtung sollte gültig sein. | Warnung | Yes |
| MSTEST0051 | Assert.Throws muss eine einzelne Anweisung enthalten. | Info | Yes |
| MSTEST0052 | Vermeiden Sie expliziten DynamicDataSourceType. | Info | Yes |
| MSTEST0053 | Vermeiden Sie Assertion-Formatparameter. | Info | Yes |
| MSTEST0054 | Verwenden Sie die CancellationToken-Eigenschaft. | Info | Yes |
| MSTEST0055 | Ignorieren Sie den Rückgabewert der Zeichenfolgenmethode nicht. | Warnung | Nein |
| MSTEST0056 | TestMethodAttribute sollte DisplayName richtig festlegen. | Info | Yes |
| MSTEST0057 | TestMethodAttribute sollte Quellinformationen weitergeben. | Warnung | Nein |
| MSTEST0058 | Vermeiden Sie Assertionen in Catch-Blöcken. | Info | Nein |
| MSTEST0059 | Verwenden Sie das Attribut "Parallelize" richtig. | Warnung | Nein |
| MSTEST0060 | Duplicate TestMethodAttribute. | Warnung | Yes |
| MSTEST0061 | Verwenden Sie das OSCondition-Attribut anstelle der Laufzeitüberprüfung. | Info | Yes |
| MSTEST0062 | Vermeiden Sie Parameter der Out/Ref-Testmethode. | Warnung | Yes |
| MSTEST0063 | Die Testklasse muss einen gültigen Konstruktor haben. | Warnung | Nein |
* Eskaliert an Fehler in Recommended und All Modi.
Häufige Szenarien
Überprüfung der Teststruktur
Stellen Sie sicher, dass Ihre Testklassen, Methoden und Geräte MSTest-Anforderungen erfüllen:
- MSTEST0002: Testklassenlayoutanforderungen (z. B. öffentlich, nicht statisch).
- MSTEST0003: Anforderungen des Testmethodenlayouts (⚠ eskaliert auf Fehler).
- MSTEST0030: Methoden mit [TestMethod] müssen in einer [TestClass] enthalten sein.
- MSTEST0063: Testen der Klassenkonstruktorüberprüfung.
Lifecycle-Methoden
Validieren von Initialisierungs- und Bereinigungsmethoden:
- MSTEST0008: TestInitialize-Überprüfung.
- MSTEST0009: TestCleanup-Überprüfung.
- MSTEST0010: ClassInitialize-Überprüfung.
- MSTEST0011: ClassCleanup-Überprüfung.
- MSTEST0012: AssemblyInitialize-Überprüfung.
- MSTEST0013: AssemblyCleanup-Überprüfung.
- MSTEST0034: Set ClassCleanupBehavior.EndOfClass.
- MSTEST0050: Globale Testeinrichtungsüberprüfung.
Datengesteuerte Tests
Sicherstellen, dass Datenattribute ordnungsgemäß verwendet werden:
- MSTEST0007: Datenattribute müssen auf Testmethoden basieren.
- MSTEST0014: DataRow-Überprüfung.
- MSTEST0018: DynamicData-Überprüfung.
- MSTEST0042: Erkennen doppelter DataRows.
- MSTEST0052: AutoDetect für DynamicDataSourceType verwenden.
- MSTEST0062: Vermeiden Sie Out/Ref-Parameter.
Schreiben besserer Assertionen
Regeln für die korrekte und effektive Assertionsnutzung:
- MSTEST0017: Übergeben Sie den Erwarteten/Istwert in der richtigen Reihenfolge.
- MSTEST0023: Verwerfen Sie keine Bedingungen (verwenden Sie Assert.IsFalse direkt).
- MSTEST0026: Vermeiden Sie nullbedingte Operatoren in Assertionen.
- MSTEST0032: Überprüfen Sie immer wahre Bedingungen.
- MSTEST0037: Verwenden Sie die am besten geeignete Assert-Methode.
- MSTEST0038: Verwenden Sie AreSame nicht mit Werttypen.
- MSTEST0039: Verwenden Sie Assert.ThrowsExactly (neuere API).
- MSTEST0046: Prefer Assert over StringAssert.
- MSTEST0051: Assert.Throws sollte einzelne Anweisung testen.
- MSTEST0053: Verwenden Sie die Zeichenfolgeninterpolation anstelle von Formatparametern.
- MSTEST0058: Keine Assertionen in Catch-Blöcke einfügen.
TestContext-Verwendung
Ordnungsgemäße Verwendung des TestContext-Objekts:
- MSTEST0005: TestContext-Eigenschaftsüberprüfung.
- MSTEST0024: Speichern Sie TestContext nicht in statischen Feldern.
- MSTEST0048: Eingeschränkter Zugriff auf Eigenschaften in Testumgebungen.
- MSTEST0049: Ablaufabbruchtoken von TestContext.
- MSTEST0054: Verwenden Sie die Eigenschaft "TestContext.CancellationToken".
Asynchrone Muster
Regeln für asynchronen Testcode:
- MSTEST0040: Vermeiden Sie Assertionen in asynchronen void-Methoden.
Testkonfiguration
- MSTEST0031: Verwenden Sie die richtigen Attribute (nicht "System.ComponentModel.Description").
- MSTEST0035: DeploymentItem-Verwendung.
- MSTEST0041: Bedingungsattribute müssen sich auf Testklassen befinden.
- MSTEST0043: Wiederholungsattribute müssen sich auf Testmethoden (⚠\ eskaliert auf Fehler) befinden.
- MSTEST0055: Ignorieren Sie keine Rückgabewerte der Zeichenfolgenmethode.
- MSTEST0056: Legen Sie "DisplayName" auf "TestMethodAttribute" richtig fest.
- MSTEST0057: Verteilen von Quellinformationen in benutzerdefinierten TestMethodAttribute.
- MSTEST0059: Verwenden Sie nicht Parallelize und DoNotParallelize.
- MSTEST0060: Vermeiden Sie doppelte TestMethodAttribute.
- MSTEST0061: Verwenden Sie das OSCondition-Attribut für Plattformüberprüfungen.