MSTest-kodanalys
MSTest-analysregler ("MSTESTxxxx") kontrollerar din C#- eller Visual Basic-kod för säkerhet, prestanda, design och andra problem.
Dricks
Om du använder Visual Studio har många analysregler associerade kodkorrigeringar som du kan använda för att åtgärda problemet. Kodkorrigeringar visas i menyn med glödlampans ikon.
Reglerna är ordnade i kategorier som prestandaanvändning...
Från och med MSTest.TestFramework 3.7 är NUGet-paketet MSTest.Analyzeers ett beroende av ramverket. För tidigare versioner måste du använda MSTest
metapaket eller lägga till en paketreferens för MSTest.Analyzers
explicit.
MSTestAnalysisMode
Från och med MSTest 3.8 är en MSBuild-egenskap med namnet MSTestAnalysisMode
tillgänglig för att avgöra vilka analysverktyg som är aktiverade med vilken allvarlighetsgrad.
Dricks
Om du vill se vilka regler som är aktiverade med vilken allvarlighetsgrad för varje läge kan du navigera till paketet med den aktuella versionen i NuGet-cachen, leta upp katalogen globalconfigs
och öppna den .globalconfig
fil som motsvarar analysläget.
Mer information om hur du hittar NuGet-cachekatalogen finns i Hantera globala paket, cacheminnen och temporära mappar. Leta rätt på mstest.analyzers
-katalogen i den aktuella katalogen, sedan versionen (3.8 och senare), och därefter globalconfigs
.
Du kan också ladda ned NuGet-paketet för den aktuella versionen från nuget.org
och visa det i NuGet Package Explorer (Windows-appen) eller visa det direkt i webbappversionen av NuGet Package Explorer.
Tillgängliga värden för den här egenskapen:
None
Det här värdet ställer in alla analysverktyg på none
allvarlighetsgrad och inaktiverar alla. Du kan sedan aktivera enskilda analysverktyg med hjälp av .editorconfig
eller .globalconfig
filer.
Default
Den här inställningen följer det dokumenterade standardbeteendet för varje regel.
- Regler som är aktiverade som standard använder sin standard allvarlighetsgrad.
- Regler som är inaktiverade som standard använder
none
allvarlighetsgrad.
Anmärkning
Regler som är aktiverade som standard som varningar är överträdelser som förväntas orsaka problem vid körning.
Recommended
Det här är det läge som vi förväntar oss att de flesta utvecklare använder. Regler som är aktiverade som standard med allvarlighetsgraden Info (suggestion
) eskaleras till varningar. Dessutom kan vissa regler eskaleras till fel i både Recommended
och All
-lägena. Till exempel MSTEST0003: Testmetoder bör ha giltig layout eskaleras till fel i Recommended
och All
lägen.
All
Det här läget är mer aggressivt än Recommended
. Alla regler är aktiverade som varningar. Som nämnts för Recommended
-läget kan vissa regler eskaleras till fel i både Recommended
- och All
-lägena. Till exempel MSTEST0003: Testmetoder bör ha giltig layout eskaleras till fel i Recommended
och All
lägen.
Anmärkning
Följande regler är helt opt-in och är inte aktiverade i Default
, Recommended
eller All
-läget:
- MSTEST0015: Testmetoden bör inte ignoreras
- MSTEST0019: Föredra TestInitialize-metoder framför konstruktorer
- MSTEST0020: Föredrar konstruktorer framför TestInitialize-metoder
- MSTEST0021: Föredrar använda Dispose-metoden framför TestCleanup-metoder
- MSTEST0022: Föredra TestCleanup framför Dispose-metoder
Kategorier
Designregler
Designregler hjälpa dig att skapa och underhålla testpaket som följer rätt design och bra metoder.
Prestandaregler
Prestandaregler stödjer prestandatest.
Regler för undertryckning
Regler för undertryckning stöder att dämpa diagnostik från andra regler.
Användningsregler
Användningsregler stöder korrekt användning av MSTest.
MSTESTEXP
Flera API:er för MSTest är dekorerade med ExperimentalAttribute. Det här attributet anger att API:et är experimentellt och kan tas bort eller ändras i framtida versioner av MSTest. Attributet används för att identifiera API:er som ännu inte är stabila och kanske inte är lämpliga för produktionsanvändning.
MSTESTEXP-diagnostikvarningen meddelar dig om användningen av en experimentell API i koden. Om du vill förhindra den här diagnostiken med SuppressMessageAttribute
lägger du till följande kod i projektet:
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("MSTESTEXP", "Justification")]
Du kan också ignorera den här diagnostiken med förprocessordirektivet genom att lägga till följande kod i projektet:
#pragma warning disable MSTESTEXP
// API that is causing the warning.
#pragma warning restore MSTESTEXP