Delen via


MSTEST0008: De methode TestInitialize moet een geldige indeling hebben

Eigenschappen Weergegeven als
Regel-id MSTEST0008
Titel De methode TestInitialize 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 code-fix Ja

Oorzaak

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

Beschrijving van regel

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

  • het moet zijn public
  • het mag niet zijn abstract
  • het mag niet zijn async void
  • het mag niet zijn static
  • het mag geen speciale methode zijn (finalizer, operator...).
  • het mag niet algemeen zijn
  • er mag geen 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 class.
  • Dit class moet zijn public of internal (als het testproject het [DiscoverInternals] kenmerk gebruikt).
  • Het class zou niet moeten zijn static.
  • Als dit het class geval is sealed, moet deze worden gemarkeerd met [TestClass] (of een afgeleid kenmerk).

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 MSTEST0008
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0008

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

Voor meer informatie, zie Hoe codeanalysewaarschuwingen te onderdrukken.