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.
Unterdrückungsregeln schalten Diagnosen von anderen Analyseprogrammen (z. B. Roslyn- oder Visual Studio-Threading-Analysatoren) automatisch aus, die im Kontext von MSTest-Tests nicht anwendbar sind.
Regeln in dieser Kategorie
| Regel-ID | Title | Unterdrücken |
|---|---|---|
| MSTEST0027 | Unterdrücken Sie asynchrones Suffix für Testmethoden. | VSTHRD200 |
| MSTEST0028 | Unterdrücken sie asynchrones Suffix für Testinstallationsmethoden. | VSTHRD200 |
| MSTEST0033 | Unterdrücken eines nicht nullfähigen Verweises, der nicht initialisiert wird. | CS8618 |
Funktionsweise von Unterdrückungsregeln
Diese Regeln erzeugen keine eigene Diagnose. Stattdessen unterdrücken sie Warnungen von anderen Analysegeräten, die andernfalls fälschlicherweise im Testcode ausgelöst würden.
VSTHRD200: Verwenden des Asynchronen Suffixs für asynchrone Methoden
Unterdrückt von: MSTEST0027, MSTEST0028
Warum unterdrücken: Visual Studio-Threadinganalyse (VSTHRD200) empfiehlt, dass asynchrone Methoden über ein "Async"-Suffix verfügen sollten. Testmethoden und Testvorrichtungsmethoden werden jedoch von MSTest über Attribute und keine Namenskonventionen ermittelt. Das Hinzufügen von "Async"-Suffixen zu Testmethodennamen (z. B TestLoginAsync. ) bietet keinen Wert und kann Testnamen weniger lesbar machen.
Beispiel:
[TestMethod]
public async Task TestLogin() // VSTHRD200 would warn without suppression
{
await LoginAsync();
// ...
}
CS8618: Nicht-nullbarer Verweis nicht initialisiert
Unterdrückt von: MSTEST0033
Warum unterdrücken: Beim Verwenden von nullable Referenztypen warnt der Compiler vor nicht-nullbaren Eigenschaften, die in Konstruktoren nicht initialisiert werden. MSTest initialisiert die TestContext Eigenschaft jedoch automatisch, bevor Testmethoden ausgeführt werden, sodass die Warnung nicht angewendet wird.
Beispiel:
[TestClass]
public class MyTests
{
public TestContext TestContext { get; set; } = null!; // CS8618 would warn without suppression
[TestMethod]
public void TestSomething()
{
// TestContext is guaranteed to be non-null here
TestContext.WriteLine("Test output");
}
}
Deaktivieren von Unterdrückungsregeln
Wenn Sie diese Warnungen lieber sehen möchten, deaktivieren Sie die Unterdrückungsregeln in Ihrem .editorconfig:
[*.cs]
dotnet_diagnostic.MSTEST0027.severity = none
dotnet_diagnostic.MSTEST0028.severity = none
dotnet_diagnostic.MSTEST0033.severity = none