Delen via


MSTEST0013: AssemblyCleanup-methode moet een geldige indeling hebben

Eigenschappen Weergegeven als
Regel-id MSTEST0013
Titel AssemblyCleanup-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 oplossing voor de code Ja

Oorzaak

Een methode die is gemarkeerd met [AssemblyCleanup] moet een geldige indeling hebben.

Beschrijving van regel

Methoden die zijn gemarkeerd met [AssemblyCleanup] , moeten de volgende indeling hebben om geldig te zijn:

  • 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
  • het mag niet abstract zijn
  • er mag geen parameter worden gebruikt of vanaf MSTest 3.8 kan er één TestContext parameter worden gebruikt
  • retourtype moet zijn void, Task of ValueTask

Het type dat deze methoden declareren, moet ook de volgende regels respecteren:

  • Het type moet een klasse zijn.
  • De klasse moet openbaar of intern zijn (als het testproject het kenmerk [DiscoverInternals] gebruikt).
  • De klasse moet 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 MSTEST0013
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0013

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.MSTEST0013.severity = none

Voor meer informatie, zie Hoe codeanalysewaarschuwingen onderdrukken.