Udostępnij za pośrednictwem


MSTEST0010: Metoda ClassInitialize powinna mieć prawidłowy układ

Właściwości Wartość
Identyfikator reguły MSTEST0010
Tytuł Metoda ClassInitialize 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
Istnieje poprawka kodu Tak

Przyczyna

Metoda oznaczona elementem [ClassInitialize] powinna mieć prawidłowy układ.

Opis reguły

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

  • nie można go zadeklarować w klasie ogólnej bez InheritanceBehavior ustawienia trybu
  • powinna być public
  • powinna być static
  • nie powinien być async void
  • nie powinna być metodą specjalną (finalizer, operator...).
  • nie powinien być ogólny
  • powinien przyjmować jeden parametr typu TestContext
  • zwracany typ powinien mieć voidwartość , Task lub ValueTask
  • InheritanceBehavior.BeforeEachDerivedClass parametr atrybutu należy określić, jeśli klasa ma wartość abstract.
  • InheritanceBehavior.BeforeEachDerivedClass parametr atrybutu nie powinien być określony, jeśli klasa ma wartość sealed.

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

  • Typ powinien mieć wartość class.
  • Element class powinien mieć wartość public lub internal (jeśli projekt testowy używa atrybutu [DiscoverInternals] ).
  • Wartość class nie powinna być .static
  • Jeśli element class ma sealedwartość , powinien zostać oznaczony znakiem [TestClass] (lub atrybutem pochodnym).
  • 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.