MSTEST0040: Keine Assertion in 'async void'-Kontexten verwenden
Eigenschaft | Wert |
---|---|
Regel-ID | MSTEST0040 |
Titel | Keine Assertion in 'async void'-Kontexten verwenden |
Kategorie | Verbrauch |
Fix is breaking or non-breaking | Untrennbar |
Standardmäßig aktiviert | Ja |
Standard-Schweregrad | Warnung |
wurde in Version eingeführt. | 3.8.0 |
Gibt es eine Codekorrektur | No |
Ursache
Die Verwendung einer Assertion-Methode in einer async void
-Methode, einer lokalen Funktion oder einem Lambda.
Regelbeschreibung
In einem async void
-Kontext ausgelöste Ausnahmen, werden nicht behandelt. Eine fehlgeschlagene Assertion in einer async void
-Methode wird akzeptiert und lässt den Prozess nicht abstürzen, wenn Sie VSTest unter dem .NET Framework verwenden. Unter .NET kann eine fehlgeschlagene Assertion in einer async void
-Methode den Prozess zum Absturz bringen, wenn Sie Microsoft.Testing.Platform oder VSTest verwenden. Falls ein benutzerdefinierter SynchronizationContext
vorhanden ist, der die Ausnahme erfasst, kann die fehlerhafte Assertion unbemerkt behoben werden.
Das Beheben von Verstößen
Refactoring des Codes, um keine Assertions in async void
zu verwenden.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel.