Analýza kódu MSTest
Pravidla analýzy MSTest (MSTESTxxxx) kontrolují kód jazyka C# nebo Visual Basic pro zabezpečení, výkon, návrh a další problémy.
Tip
Pokud používáte Visual Studio, mnoho pravidel analyzátoru má přidružené opravy kódu, které můžete použít k vyřešení problému. Opravy kódu se zobrazují v nabídce ikon žárovky.
Pravidla jsou uspořádaná do kategorií, jako je využití výkonu...
Počínaje verzí MSTest.TestFramework 3.7 je balíček MSTest.Analyzers NuGet závislostí frameworku. Pro starší verze je potřeba použít MSTest
metabalíč nebo přidat odkaz na balíček pro MSTest.Analyzers
explicitně.
MSTestAnalysisMode
Počínaje verzí MSTest 3.8 je k dispozici vlastnost MSBuild s názvem MSTestAnalysisMode
, která určuje, které analyzátory jsou povoleny v jaké závažnosti.
Tip
Pokud chcete zjistit, která pravidla jsou povolena s jakou závažností pro každý režim, můžete přejít na balíček verze zájmu v mezipaměti NuGet, vyhledat globalconfigs
adresář a otevřít soubor .globalconfig
odpovídající režimu analýzy.
Další informace o hledání adresáře mezipaměti NuGet najdete v tématu Správa globálních balíčků, mezipaměti a dočasných složek. V adresáři vyhledejte mstest.analyzers
adresář, potom verzi (3.8 a vyšší) a pak globalconfigs
.
Případně si můžete stáhnout balíček NuGet verze, která vás zajímá, z nuget.org
a prohlédnout ho v Průzkumníku balíčků NuGet (aplikace pro Windows), nebo ho prohlédnout přímo ve webové verzi Průzkumníka balíčků NuGet ve verzi.
Dostupné hodnoty pro tuto vlastnost:
None
Tato hodnota nastaví všechny analyzátory na none
závažnosti a zakáže je všechny. Jednotlivé analyzátory pak můžete povolit pomocí .editorconfig
nebo .globalconfig
souborů.
Default
Toto nastavení se řídí výchozím zdokumentovaným chováním pro každé pravidlo.
- Pravidla, která jsou ve výchozím nastavení povolená, budou používat výchozí závažnost.
- Pravidla, která jsou ve výchozím nastavení zakázaná, budou používat závažnost
none
.
Poznámka
Pravidla, která jsou ve výchozím nastavení povolená jako upozornění, jsou porušení, u kterých se očekává, že způsobí problémy za běhu.
Recommended
Toto je režim, který očekáváme, že většina vývojářů bude používat. Pravidla, která mají ve výchozím nastavení povolenou závažnost Informace (suggestion
), jsou eskalována na varování. Kromě toho mohou být určitá pravidla eskalována k chybám v režimech Recommended
a All
. Například MSTEST0003: Testovací metody by měly mít platné rozložení je eskalováno k chybě v Recommended
a All
režimech.
All
Tento režim je agresivnější než Recommended
. Všechna pravidla jsou povolená jako upozornění. Jak je uvedeno v režimu Recommended
, některá pravidla mohou být eskalována k chybám v Recommended
i v režimu All
. Například MSTEST0003: Testovací metody by měly mít platné rozložení je eskalováno k chybě v Recommended
a All
režimech.
Poznámka
Následující pravidla jsou zcela volitelná a nejsou aktivována v režimu Default
, Recommended
nebo All
:
Kategorie
Pravidla návrhu
Pravidla návrhu pomáhají vytvářet a udržovat testovací sady, které dodržují správné postupy návrhu.
Pravidla výkonu
pravidla výkonu podporují vysoce výkonné testování.
Pravidla potlačení
Pravidla potlačení nabízejí podporu pro potlačení diagnostiky z jiných pravidel.
Pravidla použití
pravidla použití podporují správné použití MSTestu.
MSTESTEXP
Několik rozhraní API MSTest je zdobeno ExperimentalAttribute. Tento atribut označuje, že rozhraní API je experimentální a může být odebráno nebo změněno v budoucích verzích MSTest. Tento atribut slouží k identifikaci rozhraní API, která ještě nejsou stabilní a nemusí být vhodná pro produkční použití.
Diagnostická výstraha MSTESTEXP vás upozorní na používání experimentálního rozhraní API ve vašem kódu. Pokud chcete tuto diagnostiku potlačit pomocí SuppressMessageAttribute
, přidejte do projektu následující kód:
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("MSTESTEXP", "Justification")]
Alternativně můžete tuto diagnostiku potlačit direktivou preprocesoru přidáním následujícího kódu do projektu:
#pragma warning disable MSTESTEXP
// API that is causing the warning.
#pragma warning restore MSTESTEXP