Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| Właściwość | Wartość |
|---|---|
| Identyfikator reguły | MSTEST0013 |
| Tytuł | Metoda AssemblyCleanup powinna mieć prawidłowy układ |
| Kategoria | Użycie |
| Poprawka powodująca niezgodność lub niezgodność | Niedzielący |
| Domyślnie włączone | Tak |
| Ważność domyślna | Ostrzeżenie |
| Wprowadzone w wersji | 3.3.0 |
| czy istnieje poprawka kodu | Tak |
Przyczyna
Metoda oznaczona elementem [AssemblyCleanup] powinna mieć prawidłowy układ.
Opis reguły
MSTest wywołuje [AssemblyCleanup], aby zwolnić zasoby całego zestawu po zakończeniu testów zestawu:
| Requirement | Powód |
|---|---|
Metoda to public static. |
Narzędzie MSTest odnajduje publiczny punkt wejścia cyklu życia i wywołuje go bez wystąpienia klasy testowej. Czyszczenie złożenia nie może zależeć od stanu jednej instancji testu. |
Metoda jest zwykła i nie jest abstract ani generyczna. |
Biblioteka MSTest wymaga ciała metody, które może zostać wywołane bez specjalnych reguł wywołania lub argumentów typu metody. |
Metoda nie ma parametrów lub ma jeden parametr TestContext w programie MSTest 3.8 lub nowszym. |
Narzędzie MSTest może wywołać czyszczenie bez argumentów lub podać kontekst czyszczenia zestawu. Nie dostarcza argumentów pojedynczego testu. |
Zwracany typ to void, Task, lub ValueTask, a metoda nie jest async void. |
Narzędzie MSTest musi czekać na asynchroniczne zwolnienie zasobów i uwzględniać niepowodzenia podczas oczyszczania przed ukończeniem cyklu życia zestawu. |
Typ deklarujący jest klasą niegeneryczną oznaczoną za pomocą [TestClass] lub atrybutu pochodnego. |
Narzędzie MSTest lokalizuje wywołania zwrotne zestawu za pośrednictwem kontenerów klasy testowej. Kontener niegeneryczny identyfikuje funkcję wywołania zwrotnego bez wymagania argumentów typu klasy. Kontener może być statyczny. |
Deklarowana klasa to public, lub internal z [assembly: DiscoverInternals]. |
Kontener musi być dostępny dla mechanizmu odnajdywania MSTest. Odnajdywanie wewnętrzne nie zmienia wymagania, że sam callback jest publiczny. |
Jak naprawić naruszenia
Upewnij się, że metoda jest zgodna z układem opisanym powyżej.
Kiedy pomijać ostrzeżenia
Nie wyciszaj ostrzeżenia z tej reguły. Jeśli zignorujesz tę regułę, oflagowane wystąpienia zostaną pominięte lub spowodują błąd wykonania.
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 MSTEST0013
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0013
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0013.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.