MSTEST0011: De methode ClassCleanup moet een geldige indeling hebben
Eigenschappen | Weergegeven als |
---|---|
Regel-id | MSTEST0011 |
Titel | KlasseCleanup-methode moet een geldige indeling hebben |
Categorie | Gebruik |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld | Ja |
Standaard ernst | Waarschuwing |
Geïntroduceerd in versie | 3.3.0 |
Is er een codeoplossing | Ja |
Oorzaak
Een methode die is gemarkeerd met [ClassCleanup]
moet een geldige indeling hebben.
Beschrijving van regel
Methoden die zijn gemarkeerd met [ClassCleanup]
, moeten de volgende indeling hebben om geldig te zijn:
- kan niet worden gedeclareerd voor een algemene klasse zonder dat de
InheritanceBehavior
modus is ingesteld - het moet zijn
public
- het moet zijn
static
- het mag niet zijn
async void
- het mag geen speciale methode zijn (finalizer, operator...).
- het mag niet algemeen zijn
- er mag geen parameter worden gebruikt of vanaf MSTest 3.8 kan er één
TestContext
parameter worden gebruikt - retourtype moet zijn
void
,Task
ofValueTask
-
InheritanceBehavior.BeforeEachDerivedClass
kenmerkparameter moet worden opgegeven als de klasse isabstract
. -
InheritanceBehavior.BeforeEachDerivedClass
kenmerkparameter mag niet worden opgegeven als de klasse issealed
.
Het type dat deze methoden declareren, moet ook de volgende regels respecteren:
- Het type moet een
class
. - Dit
class
moet zijnpublic
ofinternal
(als het testproject het[DiscoverInternals]
kenmerk gebruikt). - Het
class
zou niet moeten zijnstatic
. - Als dit het
class
geval issealed
, moet deze worden gemarkeerd met[TestClass]
(of een afgeleid kenmerk).
- de klasse mag niet algemeen zijn
Schendingen oplossen
Zorg ervoor dat de methode overeenkomt met de hierboven beschreven indeling.
Wanneer waarschuwingen onderdrukken
Een waarschuwing van deze regel niet onderdrukken. Als u deze regel negeert, worden gemarkeerde exemplaren overgeslagen of leiden ze tot runtimefouten.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable MSTEST0011
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0011
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0011.severity = none
Voor meer informatie, zie Hoe codeanalysewaarschuwingen onderdrukken.