Dela via


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 eller ValueTask
  • InheritanceBehavior.BeforeEachDerivedClass attributparametern ska anges om klassen är abstract.
  • InheritanceBehavior.BeforeEachDerivedClass attributparametern ska inte anges om klassen är sealed.

Den typ som deklarerar dessa metoder bör också respektera följande regler:

  • Typen ska vara en class.
  • class Ska vara public eller internal (om testprojektet använder attributet[DiscoverInternals]).
  • Det class borde inte vara static.
  • class Om är sealedska 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.