Udostępnij za pośrednictwem


MSTEST0013: Metoda AssemblyCleanup powinna mieć prawidłowy układ

Właściwości Wartość
Identyfikator reguły MSTEST0013
Tytuł Metoda AssemblyCleanup powinna mieć prawidłowy układ
Kategoria Użycie
Poprawka powodująca niezgodność lub niezgodność Niezgodność
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

Metody oznaczone za pomocą powinny być zgodne z [AssemblyCleanup] następującym układem, aby były prawidłowe:

  • powinna być public
  • powinna być static
  • nie powinien być async void
  • nie powinna być metodą specjalną (finalizer, operator...).
  • nie powinien być ogólny
  • nie powinien być abstrakcyjny
  • nie powinien przyjmować żadnego parametru, a począwszy od MSTest 3.8, może mieć jeden parametr TestContext
  • zwracany typ powinien mieć voidwartość , Task lub ValueTask

Typ deklarujący te metody powinien również przestrzegać następujących reguł:

  • Typ powinien być klasą.
  • Klasa powinna być publiczna lub wewnętrzna (jeśli projekt testowy używa atrybutu [DiscoverInternals] ).
  • Klasa powinna być oznaczona za pomocą klasy [TestClass] (lub atrybutu pochodnego)
  • klasa nie powinna być ogólna

Jak naprawić naruszenia

Upewnij się, że metoda jest zgodna z układem opisanym powyżej.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżeń dla tej reguły. Jeśli zignorujesz tę regułę, oflagowane wystąpienia zostaną pominięte lub spowodują błąd środowiska uruchomieniowego.

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.