MSTEST0022: Preferuj metodę TestCleanup nad metodami Dispose

Właściwość Wartość
Identyfikator reguły MSTEST0022
Tytuł Preferuj metodę TestCleanup nad metodami Dispose
Kategoria Projekt
Poprawka powodująca niezgodność lub niepowodująca niezgodności Nienaruszający zgodności
Domyślnie włączone Nie
Domyślny poziom ważności Info
Wprowadzone w wersji 3.4.0
czy istnieje poprawka kodu Tak

Przyczyna

Ta reguła zgłasza diagnostykę, gdy zostanie wykryta metoda Dispose lub DisposeAsync.

Opis reguły

Aby jawnie zidentyfikować czyszczenie jako wywołanie zwrotne cyklu życia MSTest, użyj polecenia [TestCleanup]. Funkcja wywołania zwrotnego zwracająca Task obsługuje również czyszczenie asynchroniczne na platformach docelowych, które nie udostępniają elementu IAsyncDisposable.

Dispose i DisposeAsync również są wspierane. Ta reguła wyraża konwencję dobrowolnego włączenia, a nie wymaganie poprawnego wykonywania testu. MSTEST0021 oferuje przeciwną konwencję; wybierz zasady oczyszczania, które pasują do projektu, zamiast włączać obie.

Jak naprawić naruszenia

Zastąp metody Dispose lub DisposeAsync elementem [TestCleanup].

Kiedy wyłączać ostrzeżenia

Zwykle nie chcesz pomijać ostrzeżeń z tej reguły, jeśli zdecydujesz się ją włączyć.

Uwaga

Ta reguła jest włączona. Nie jest ona włączona nawet w przypadku korzystania z <MSTestAnalysisMode>All</MSTestAnalysisMode>. Aby uzyskać więcej informacji na temat MSTestAnalysisMode, zobacz analizy kodu MSTest.

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable MSTEST0022
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0022

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0022.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.