MSTEST0010: Metoda ClassInitialize by měla mít platné rozložení
Vlastnost | Hodnota |
---|---|
ID pravidla | MSTEST0010 |
Název | Metoda ClassInitialize by měla mít platné rozložení |
Kategorie | Využití |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení | Ano |
Výchozí závažnost | Upozorňující |
Představeno ve verzi | 3.3.0 |
Existuje oprava kódu | Ano |
Příčina
Metoda označená [ClassInitialize]
pomocí by měla mít platné rozložení.
Popis pravidla
Metody označené [ClassInitialize]
pomocí následujícího rozložení by měly být platné:
- nelze deklarovat v obecné třídě bez
InheritanceBehavior
nastavení režimu. - mělo by to být
public
- mělo by to být
static
- nemělo by to být
async void
- neměla by se jednat o speciální metodu (finalizátor, operátor...).
- nemělo by být obecné.
- měl by mít jeden parametr typu.
TestContext
- návratový typ by měl být
void
,Task
neboValueTask
-
InheritanceBehavior.BeforeEachDerivedClass
parametr atributu by měl být zadán, pokud jeabstract
třída . -
InheritanceBehavior.BeforeEachDerivedClass
parametr atributu by neměl být zadán, pokud jesealed
třída .
Typ deklarující tyto metody by měl respektovat také následující pravidla:
- Typ by měl být .
class
- Měl
class
by býtpublic
nebointernal
(pokud testovací projekt používá[DiscoverInternals]
atribut). - Nemělo
class
by to býtstatic
. - Pokud je
class
,sealed
měla by být označena (nebo odvozeným atributem[TestClass]
).
- třída by neměla být obecná.
Jak opravit porušení
Ujistěte se, že metoda odpovídá výše popsanému rozložení.
Kdy potlačit upozornění
Nepotlačujte upozornění na toto pravidlo. Pokud toto pravidlo ignorujete, instance s příznakem se buď přeskočí, nebo dojde k chybě za běhu.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable MSTEST0010
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0010
Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none
v konfiguračním souboru .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0010.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.