Delen via


MSTEST0019: Prefer TestInitialize methods over constructors

Eigenschappen Weergegeven als
Regel-id MSTEST0019
Titel De voorkeur geven aan TestInitialize-methoden voor constructors
Categorie Ontwerpen
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld Nee
Standaard ernst Info
Geïntroduceerd in versie 3.4.0
Is er een codeoplossing Ja

Oorzaak

Deze regel genereert een diagnose wanneer er een parameterloze expliciete constructor is gedeclareerd voor een testklasse (klasse gemarkeerd met [TestClass]).

Beschrijving van regel

Gebruik deze regel om gebruik [TestInitialize] af te dwingen voor zowel synchrone als asynchrone test initialisatie. Asynchrone (async/await) test initialisatie vereist het gebruik van [TestInitialize] methoden, omdat het resulterende Task moet worden verwacht.

Schendingen oplossen

Vervang de constructor-aanroep door een [TestInitialize] methode.

Wanneer waarschuwingen onderdrukken

U wilt meestal geen waarschuwingen van deze regel onderdrukken als u ervoor hebt gekozen om u hiervoor aan te kiezen.

Notitie

Deze regel is vrijwillig. Het is niet ingeschakeld, zelfs niet wanneer u <MSTestAnalysisMode>All</MSTestAnalysisMode>gebruikt. Zie MSTestAnalysisModevoor meer informatie over .

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

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

Voor meer informatie, zie Hoe u codeanalysewaarschuwingen kunt onderdrukken.