Delen via


MSTEST0030: Type met moet [TestMethod] worden gemarkeerd met [TestClass]

Eigenschappen Weergegeven als
Regel-id MSTEST0030
Titel Het type dat [TestMethod] moet worden gemarkeerd met [TestClass]
Categorie Gebruik
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld Ja
Standaard ernst Info
Geïntroduceerd in versie 3.5.0
Is er een codeoplossing Nee

Oorzaak

Het type dat moet [TestMethod] worden gemarkeerd met [TestClass], anders wordt de testmethode op de achtergrond genegeerd.

Beschrijving van regel

MSTest beschouwt testmethoden alleen in de context van een testklassecontainer (een klasse die is gemarkeerd met [TestClass] of afgeleid kenmerk), wat ertoe kan leiden dat sommige tests op de achtergrond worden genegeerd. Als uw klasse het algemene testgedrag moet vertegenwoordigen dat moet worden uitgevoerd door onderliggende klassen, is het raadzaam om het type als abstract te markeren om de intentie voor andere ontwikkelaars die de code lezen te verduidelijken.

Schendingen oplossen

Een niet-abstracte klasse bevat testmethoden die moeten worden gemarkeerd met [TestClass].

Wanneer waarschuwingen onderdrukken

Het is veilig om de diagnose te onderdrukken als u zeker weet dat uw klasse wordt overgenomen en dat de tests die voor deze klasse zijn gedeclareerd, alleen moeten worden uitgevoerd in de context van subklassen. We raden u echter aan om de klasse als abstract te markeren.

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

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

Voor meer informatie, zie Hoe codeanalysewaarschuwingen te onderdrukken.