MSTest-kódelemzés
Az MSTest-elemzés ("MSTESTxxxx") szabályai biztonsági, teljesítménybeli, tervezési és egyéb problémák esetén ellenőrzik a C# vagy a Visual Basic kódját.
Tipp.
Ha Visual Studio-t használ, számos elemző szabály rendelkezik a probléma megoldásához alkalmazható kódjavításokkal . A kódjavítások a villanykörte ikon menüjében jelennek meg.
A szabályok olyan kategóriákba vannak rendezve, mint például a teljesítményhasználat...
Az MSTest.TestFramework 3.7-től kezdve az MSTest.Analyzers NuGet csomag a keretrendszer függősége. A korábbi verziók esetén a MSTest
metacsomagot kell használnia, vagy kifejezetten hozzá kell adnia egy csomaghivatkozást a MSTest.Analyzers
-hez.
MSTestAnalysisMode
Az MSTest 3.8-tól kezdve egy MSTestAnalysisMode
nevű MSBuild tulajdonság érhető el annak meghatározásához, hogy mely elemzők engedélyezve vannak milyen súlyossággal.
Tipp.
Ha meg szeretné tudni, hogy mely szabályok vannak engedélyezve az egyes üzemmódok súlyosságánál, keresse meg a NuGet-gyorsítótárban az érdeklődési kör csomagját, keresse meg a globalconfigs
könyvtárat, és nyissa meg az elemzési módnak megfelelő .globalconfig
fájlt.
További információ a NuGet-gyorsítótár könyvtárának megkereséséről: Globális csomagok, gyorsítótár és ideiglenes mappák kezelése. Ebben a könyvtárban keresse meg mstest.analyzers
könyvtárat, majd a verziót (3.8 vagy újabb), majd globalconfigs
.
Másik lehetőségként letöltheti a kívánt verzió NuGet-csomagját nuget.org
, és megtekintheti azt a NuGet Package Explorerben (Windows alkalmazás), vagy közvetlenül a NuGet Package Explorer webalkalmazás-verziójában.
A tulajdonság elérhető értékei:
None
Ez az érték az összes elemző súlyosságát none
-ra állítja, és ezzel letiltja őket. Ezután engedélyezheti az egyes elemzőket .editorconfig
vagy .globalconfig
fájlok használatával.
Default
Ez a beállítás az egyes szabályok alapértelmezett dokumentált viselkedését követi.
- Az alapértelmezés szerint engedélyezett szabályok az alapértelmezett súlyosságukat használják.
- Az alapértelmezés szerint letiltott szabályok
none
súlyosságot használnak.
Megjegyzés
A figyelmeztetésként alapértelmezés szerint engedélyezett szabályok olyan szabálysértések, amelyek futásidőben várhatóan problémákat okoznak.
Recommended
Ezt a módot várjuk a legtöbb fejlesztőtől. Az Info (suggestion
) súlyosságával alapértelmezés szerint engedélyezett szabályok figyelmeztetésekká eszkalálódnak. Ezenkívül bizonyos szabályok hibává alakulhatnak mind a Recommended
, mind a All
módban. Például MSTEST0003: A tesztmódszereknek érvényes elrendezésűnek kell, hogy legyenek, hibaként van eszkalálva, Recommended
és All
módban.
All
Ez a mód agresszívabb, mint Recommended
. Minden szabály figyelmeztetésként van engedélyezve. Ahogy az Recommended
mód esetében is említettük, egyes szabályok Recommended
és All
módban hibákká válnak. Például MSTEST0003: A tesztmódszereknek érvényes elrendezésűnek kell, hogy legyenek, hibaként van eszkalálva, Recommended
és All
módban.
Megjegyzés
A következő szabályok teljesen választhatók és nincsenek engedélyezve Default
, Recommended
vagy All
módokban:
- MSTEST0015: A vizsgálati módszert nem szabad figyelmen kívül hagyni
- MSTEST0019: A TestInitialize metódusok előnyben részesítése a konstruktorokkal szemben
- MSTEST0020: A konstruktorok előnyben részesítése a TestInitialize metódusokkal szemben
- MSTEST0021: Előnyben részesítse a Dispose metódust a TestCleanup metódusok helyett
- hu-HU: MSTEST0022: Előnyben részesítse a TestCleanup-ot a Dispose metódusokkal szemben
Kategóriák
Tervezési szabályok
tervezési szabályok segítenek olyan tesztcsomagok létrehozásában és karbantartásában, amelyek megfelelnek a megfelelő kialakításnak és a bevált eljárásoknak.
Teljesítményszabályok
teljesítményszabályok támogatják a nagy teljesítményű tesztelést.
Elnyomási szabályok
letiltási szabályok támogatják a diagnosztika más szabályokból való letiltását.
Használati szabályok
használati szabályok támogatják az MSTest megfelelő használatát.
MSTESTEXP
Az MSTest számos API-ját a ExperimentalAttributedíszíti. Ez az attribútum azt jelzi, hogy az API kísérleti jellegű, és az MSTest jövőbeli verzióiban eltávolítható vagy módosítható. Az attribútum olyan API-k azonosítására szolgál, amelyek még nem stabilak, és nem alkalmasak éles használatra.
Az MSTESTEXP diagnosztikai riasztások figyelmeztetnek a kód használata során egy kísérleti API-ra. Ha ki szeretné kapcsolni a diagnosztikát a SuppressMessageAttribute
használatával, adja hozzá a következő kódot a projekthez:
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("MSTESTEXP", "Justification")]
Ezt a diagnosztikát az előfeldolgozási irányelvvel is letilthatja, ha hozzáadja a következő kódot a projekthez:
#pragma warning disable MSTESTEXP
// API that is causing the warning.
#pragma warning restore MSTESTEXP