MSTEST0003: Testmetoder bör ha en giltig layout
Property | Värde |
---|---|
Regel-ID | MSTEST0003 |
Title | Testmetoderna bör ha en giltig layout |
Kategori | Förbrukning |
Korrigeringen är icke-bakåtkompatibel | Brott |
Aktiverad som standard | Ja |
Standard allvarlighetsgrad | Varning (eskalerades till Fel vid inställning MSTestAnalysisMode till Recommended eller All ) |
Introducerad i version | 3.2.0 |
Finns det en kodkorrigering | Ja |
Orsak
En testmetod följer inte enstaka eller flera punkter i den obligatoriska testmetodlayouten.
Regelbeskrivning
Testmetoder (metoder som har markerats med [TestMethod]
attributet) bör följa den angivna layouten för att anses vara giltiga av MSTest:
- de ska vara
public
(ellerinternal
om[assembly: DiscoverInternals]
attributet har angetts) - de bör inte vara
static
- de bör inte vara generiska om de använder MSTest 3.7 eller tidigare
- de bör inte vara
abstract
- de ska returnera
void
ellerTask
- de bör inte vara
async void
- de bör inte vara en särskild metod (konstruktor, finalizer, operator...)
- den typ som deklarerar den här metoden ska vara offentlig
Så här åtgärdar du överträdelser
Kontrollera att testmetoden matchar den layout som beskrivs ovan.
När du ska ignorera varningar
Ignorera inte en varning från den här regeln. Om du ignorerar den här regeln ignoreras tester eftersom MSTest inte anser att den här metoden är en testmetod.
Ignorera 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 MSTEST0003
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0003
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.MSTEST0003.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.