Dela via


MSTEST0030: Typ som innehåller [TestMethod] ska markeras med [TestClass]

Property Värde
Regel-ID MSTEST0030
Title Typ som innehåller [TestMethod] ska markeras med [TestClass]
Kategori Förbrukning
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard Ja
Standard allvarlighetsgrad Info
Introducerad i version 3.5.0
Finns det en kodkorrigering Nej

Orsak

Typ som innehåller [TestMethod] ska markeras med [TestClass], annars ignoreras testmetoden tyst.

Regelbeskrivning

MSTest tar endast hänsyn till testmetoder i kontexten för en testklasscontainer (en klass markerad med [TestClass] eller härledda attribut) vilket kan leda till att vissa tester ignoreras tyst. Om klassen ska representera vanligt testbeteende som ska köras av underordnade klasser rekommenderar vi att du markerar typen som abstrakt för att klargöra avsikten för andra utvecklare som läser koden.

Så här åtgärdar du överträdelser

En icke-abstrakt klass innehåller testmetoder som ska markeras med "[TestClass]".

När du ska ignorera varningar

Det är säkert att ignorera diagnostiken om du är säker på att din klass ärvs och att testerna som deklareras i den här klassen endast ska köras i kontexten för underklasser. Vi rekommenderar dock att du markerar klassen som abstrakt.

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

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

Mer information finns i Så här utelämnar du kodanalysvarningar.