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.
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