Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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.