MSTEST0011: ClassCleanup-metoden bör ha en giltig layout
Property | Värde |
---|---|
Regel-ID | MSTEST0011 |
Title | ClassCleanup-metoden bör ha en giltig layout |
Kategori | Förbrukning |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard | Ja |
Standard allvarlighetsgrad | Varning |
Introducerad i version | 3.3.0 |
Finns det en kodkorrigering | Ja |
Orsak
En metod som är markerad med [ClassCleanup]
ska ha en giltig layout.
Regelbeskrivning
Metoder som markerats med [ClassCleanup]
bör följa följande layout för att vara giltiga:
- det kan inte deklareras i en allmän klass utan att
InheritanceBehavior
läget har angetts - det bör vara
public
- det bör vara
static
- det ska inte vara
async void
- det bör inte vara en särskild metod (finalizer, operator...).
- det bör inte vara generiskt
- det ska inte ta några parametrar, eller från och med MSTest 3.8 kan det ha en enda
TestContext
-parameter - returtypen ska vara
void
,Task
ellerValueTask
-
InheritanceBehavior.BeforeEachDerivedClass
attributparametern ska anges om klassen ärabstract
. -
InheritanceBehavior.BeforeEachDerivedClass
attributparametern ska inte anges om klassen ärsealed
.
Den typ som deklarerar dessa metoder bör också respektera följande regler:
- Typen ska vara en
class
. -
class
Ska varapublic
ellerinternal
(om testprojektet använder attributet[DiscoverInternals]
). - Det
class
borde inte varastatic
. -
class
Om ärsealed
ska det markeras med[TestClass]
(eller ett härlett attribut).
- klassen ska inte vara generisk
Så här åtgärdar du överträdelser
Kontrollera att metoden matchar layouten som beskrivs ovan.
När du ska ignorera varningar
Ignorera inte en varning från den här regeln. Om du ignorerar den här regeln hoppas flaggade instanser över eller resulterar i körningsfel.
Dölj en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable MSTEST0011
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0011
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0011.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.