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 |
czy 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ć
void
wartość ,Task
lubValueTask
-
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
lubinternal
(jeśli projekt testowy używa atrybutu[DiscoverInternals]
). - Wartość
class
nie powinna być .static
- Jeśli element
class
masealed
wartość , 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.
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 MSTEST0010
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0010
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0010.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.