Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az MSTest, a Microsoft tesztelési keretrendszere a .NET-alkalmazások tesztelési keretrendszere. Lehetővé teszi a tesztek írását és végrehajtását, valamint a Visual Studio és a Visual Studio Code Test Explorersbe, a .NET CLI-be és számos CI-folyamatba való integrációval rendelkező tesztcsomagokat.
Az MSTest egy teljes mértékben támogatott, nyílt forráskódú és platformfüggetlen tesztelési keretrendszer, amely a GitHubon üzemeltetett összes támogatott .NET-cél (.NET-keretrendszer, .NET Core, .NET, UWP, WinUI stb.) használatával működik.
Futtatási beállítások
A .runsettings-fájlokkal konfigurálható az egységtesztek futtatása. Ha többet szeretne megtudni a runsettingsról és a platformhoz kapcsolódó konfigurációkról, tekintse meg a VSTest runsettings dokumentációját vagy az MSTest futó runsettings dokumentációját.
MSTest elem
Az alábbi runsettings bejegyzések segítségével konfigurálhatja az MSTest viselkedését.
| Konfiguráció | Alapértelmezett | Értékek |
|---|---|---|
| AssemblyCleanupTimeout | 0 | Adja meg globálisan a szerelvénykarbantartási módszer egyes példányaira alkalmazandó időtúllépést.
[Timeout] Az összeállítási tisztítási metódusban megadott attribútum felülírja a globális időkorlátot. |
| AssemblyInitializeTimeout | 0 | Adja meg globálisan az egyes szerelvény-inicializálási metódusokra alkalmazandó időtúllépést.
[Timeout] az assembly inicializáló metódusában megadott attribútum felülbírálja a globális timeoutot. |
| Közgyűlési Határozat | hamis | Az egységtesztek keresésekor és futtatásakor megadhatja a további szerelvények elérési útját. Ezeket az elérési utakat használhatja például olyan függőségi szerelvényekhez, amelyek nem ugyanabban a könyvtárban találhatók, mint a tesztszerelvény. Az elérési út megadásához használjon egy címtárelérési elem. Az elérési utak környezeti változókat is tartalmazhatnak.<AssemblyResolution> <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/> </AssemblyResolution>Ez a funkció csak .NET-keretrendszer-cél használatakor alkalmazható. |
| CaptureTraceOutput | igaz | Rögzítse az Console.Write*aktuális futó teszthez társított , Trace.Write*és Debug.Write* API-kból érkező szöveges üzeneteket. |
| ClassCleanupLifecycle | EndOfClass | Ha azt szeretné, hogy az osztály tisztítása a szerelvény végén történjen, állítsa EndOfAssembly értékre. (Az MSTest 4-es verziótól kezdve már nem támogatott, mivel az EndOfClass az alapértelmezett és csak ClassCleanup viselkedés) |
| ClassCleanupTimeout | 0 | Adja meg globálisan az osztályok takarítási módszerei egyes példányaira alkalmazandó időtúllépést.
[Timeout] az osztálytisztítási metódusban megadott attribútum felülbírálja a globális időtúllépést. |
| ClassInitializeTimeout | 0 | Adja meg globálisan az egyes osztály inicializálási metódusokra alkalmazandó időtúllépést.
[Timeout] az osztály inicializálási metódusában megadott attribútum felülírja a globális időtúllépést. |
| Tekintse a rögzítéseket speciális teszteknek | hamis | A Visual Studio és Visual Studio Code |
| Tesztfutás befejezése után törölje a telepítési könyvtárat | igaz | Ha meg szeretné őrizni az üzembehelyezési könyvtárat a tesztfuttatás után, állítsa ezt az értéket false-ra. |
| Telepítés Engedélyezve | igaz | Ha hamis értékre állítja be az értéket, a tesztmetódusban megadott üzembehelyezési elemek nem lesznek átmásolva az üzembehelyezési könyvtárba. |
| DeployTestSourceDependencies | igaz | Egy érték, amely jelzi, hogy a tesztforrás hivatkozásait üzembe kell-e helyezni. |
| Alap osztály teszt metódusainak engedélyezése más összeállításokból | igaz | Egy érték, amely azt jelzi, hogy engedélyezi-e a vizsgálati módszerek felderítését az öröklő tesztosztálytól eltérő szerelvény alaposztályaiból. |
| ForcedLegacyMode | hamis | A Visual Studio régebbi verzióiban az MSTest-adaptert úgy optimalizálták, hogy gyorsabb és skálázhatóbb legyen. Előfordulhat, hogy bizonyos viselkedések, például a tesztek futtatásának sorrendje nem pontosan olyan, mint a Visual Studio korábbi kiadásaiban. Állítsa az értéket a igaz értékre a régebbi tesztadapter használatához. Ezt a beállítást például akkor használhatja, ha egy app.config fájl van megadva egy egységteszthez. Javasoljuk, hogy fontolja meg a tesztek újrabontását, hogy lehetővé tegye az újabb adapter használatát. |
| TérképEredménytelenSikertelenre | hamis | Ha egy teszt nem meggyőző állapottal fejeződik be, azt a Test Explorer kihagyott állapotára térképezik fel. Ha azt szeretné, hogy a nem meggyőző tesztek sikertelenként jelenjenek meg, állítsa az értéket igaz értékre. |
| NemFuttathatóTérképHibáraÁllítása | igaz | Egy érték, amely azt jelzi, hogy egy nem futtatható eredmény megfeleltethető-e a sikertelen tesztnek. |
| OrderTestsByNameInClass | hamis | Ha tesztnevekkel szeretné futtatni a teszteket mind a Tesztböngészőkben, mind a parancssorban, állítsa ezt az értéket igaz. |
| Párhuzamosítás | A párhuzamosítási beállítások megadására szolgál: Feldolgozók: A párhuzamosításhoz használandó szálak/feldolgozók száma, amely alapértelmezés szerint az aktuális gépen lévő processzorok száma. HATÓKÖR: A párhuzamosítás hatóköre. A beállítást „MethodLevel” értékre végezheti el. Alapértelmezés szerint ez ClassLevel. <Parallelize><Workers>32</Workers><Scope>MethodLevel</Scope></Parallelize> |
|
| BeállításokFájl | Itt adhatja meg az MSTest-adapterrel használni kívánt tesztbeállításokat. A beállítások menüben egy tesztbeállításokat tartalmazó fájlt is megadhat. Ha ezt az értéket adja meg, a ForcedLegacyMode értékét is igaz értékre kell állítania. <ForcedLegacyMode>true</ForcedLegacyMode> |
|
| TestCleanupTimeout | 0 | Adja meg globálisan az időkorlátot, amelyet a teszttakarítási módszer minden egyes példányára alkalmazni kell.
[Timeout] A teszt-tisztítási módszerben megadott attribútum felülírja a globális időkorlátot. |
| TestInitializeTimeout | 0 | Adja meg globálisan a tesztelési inicializálási módszer egyes példányaira alkalmazandó időtúllépést.
[Timeout] a teszt inicializáló metódusában megadott attribútum felülírja a globális időkorlátot. |
| TestTimeout | 0 | Lekéri a globális teszteset megadott időtúllépési idejét. |
| Kezelje az osztály- és összeszerelési tisztítási figyelmeztetéseket hibaként | hamis | Ha hibaként szeretné látni az osztálytakarítás során felmerülő problémákat, állítsa ezt az értéket igaz-ra. |
| Felfedezési figyelmeztetések hibaként kezelése | hamis | Ha hibaként szeretné jelenteni a tesztfelderítési figyelmeztetéseket, állítsa ezt az értéket igaz értékre. |
TestRunParameter elem
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
</TestRunParameters>
A tesztfuttatási paraméterek lehetővé teszik olyan változók és értékek definiálásának módját, amelyek futásidőben érhetők el a tesztekhez. A paraméterek elérése az MSTest TestContext.Properties tulajdonság használatával:
private string _appUrl;
public TestContext TestContext { get; set; }
[TestMethod]
public void HomePageTest()
{
string _appUrl = TestContext.Properties["webAppUrl"];
}
Tesztfuttatási paraméterek használatához adjon hozzá egy nyilvános TestContext tulajdonságot a tesztosztályhoz.
Példa .runsettings fájlra
Az alábbi XML egy tipikus .runsettings-fájl tartalmát mutatja be. Másolja ki ezt a kódot, és szerkessze az igényeinek megfelelően.
A fájl minden eleme nem kötelező, mert alapértelmezett értékkel rendelkezik.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Parameters used by tests at runtime -->
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
<Parameter name="webAppUserName" value="Admin" />
<Parameter name="webAppPassword" value="Password" />
</TestRunParameters>
<!-- MSTest -->
<MSTest>
<MapInconclusiveToFailed>True</MapInconclusiveToFailed>
<CaptureTraceOutput>false</CaptureTraceOutput>
<DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
<DeploymentEnabled>False</DeploymentEnabled>
<ConsiderFixturesAsSpecialTests>False</ConsiderFixturesAsSpecialTests>
<AssemblyResolution>
<Directory path="D:\myfolder\bin\" includeSubDirectories="false"/>
</AssemblyResolution>
</MSTest>
</RunSettings>
testconfig.json
Ha msTesttel futtatja a teszteket, egy testconfig.json fájl használatával konfigurálhatja a tesztfuttató viselkedését. A testconfig.json fájl egy JSON-fájl, amely a tesztfuttató konfigurációs beállításait tartalmazza. A fájl a tesztfuttató és a tesztvégrehajtási környezet konfigurálására szolgál. További információért lásd a Microsoft.Testing.Platform testconfig.json dokumentációt.
Az MSTest 3.7-től kezdve az MSTest-futtatások ugyanabban a konfigurációs fájlban is konfigurálhatók. Az alábbi szakaszok a testconfig.json fájlban használható beállításokat ismertetik.
MSTest elem
Az MSTest-beállítások a következő szakaszokban ismertetett funkciók szerint vannak csoportosítva.
| Bejegyzés | Alapértelmezett | Leírás |
|---|---|---|
| teszteketOsztályNévSzerintRendez | hamis | Ha tesztnevekkel szeretné futtatni a teszteket mind a Tesztböngészőkben, mind a parancssorban, állítsa ezt az értéket igaz. |
| engediBaseClassTestMethodsMásGyűjteményekből | igaz | Egy érték, amely azt jelzi, hogy engedélyezi-e a vizsgálati módszerek felderítését az öröklő tesztosztálytól eltérő szerelvény alaposztályaiból. |
| classCleanupLifecycle | Összeszerelés Vége | Ha azt szeretné, hogy az osztály tisztítása az osztály végén történjen meg, állítsa EndOfClass. |
assemblyResolution beállítások
A szakasz összes beállítása a assemblyResolution elemhez tartozik.
| Bejegyzés | Alapértelmezett | Leírás |
|---|---|---|
| Útvonalak | Egyik sem | Az egységtesztek keresésekor és futtatásakor megadhatja a további szerelvények elérési útját. Ezeket az elérési utakat használhatja például olyan függőségi szerelvényekhez, amelyek nem ugyanabban a könyvtárban találhatók, mint a tesztszerelvény. Megadhat egy elérési utat az alakzatban { "path": "...", "includeSubDirectories": "true/false" }. |
Példa:
{
"mstest": {
"assemblyResolution": {
{ "path": "...", "includeSubDirectories": "true/false" }
}
}
}
deployment beállítások
A szakasz összes beállítása a deployment elemhez tartozik.
| Bejegyzés | Alapértelmezett | Leírás |
|---|---|---|
| töröljeAzTelepítésiKönyvtáratAmintATesztFutásBefejeződött | igaz | Ha meg szeretné őrizni az üzembehelyezési könyvtárat a tesztfuttatás után, állítsa ezt az értéket false-ra. |
| tesztforrásfüggőségek telepítése | igaz | Azt jelzi, hogy a tesztforrás hivatkozásait üzembe kell-e helyezni. |
| Engedélyezve | igaz | Ha hamis értékre állítja be az értéket, a tesztmetódusban megadott üzembehelyezési elemek nem lesznek átmásolva az üzembehelyezési könyvtárba. |
Példa:
{
"mstest": {
"deployment": {
"deleteDeploymentDirectoryAfterTestRunIsComplete": true,
"deployTestSourceDependencies": true,
"enabled": true
}
}
}
output beállítások
A szakasz összes beállítása a output elemhez tartozik.
| Bejegyzés | Alapértelmezett | Leírás |
|---|---|---|
| captureTrace | igaz | Rögzítse az Console.Write*aktuális futó teszthez társított , Trace.Write*és Debug.Write* API-kból érkező szöveges üzeneteket. |
Példa:
{
"mstest": {
"output": {
"captureTrace": false
}
}
}
parallelism beállítások
A szakasz összes beállítása a parallelism elemhez tartozik.
| Bejegyzés | Alapértelmezett | Leírás |
|---|---|---|
| Engedélyezve | hamis | A tesztelés párhuzamosításának engedélyezése. |
| hatókör | osztály | A párhuzamosítás hatóköre. Beállíthatja a methodbeállítást. Az alapértelmezett classegy adott osztály összes tesztjének szekvenciális, de több osztály párhuzamos futtatásának felel meg. |
| Munkavállalók | 0 | A párhuzamosításhoz használandó szálak/feldolgozók száma. Az alapértelmezett érték megfelel az aktuális gépen lévő processzorok számának. |
Példa:
{
"mstest": {
"parallelism": {
"enabled": true,
"scope": "method",
"workers": 32
}
}
}
execution beállítások
A szakasz összes beállítása a execution elemhez tartozik.
| Bejegyzés | Alapértelmezett | Leírás |
|---|---|---|
| tekintsÜresAdatforrástMintDöntetlen | hamis | Ha trueértékre van állítva, az üres adatforrások nem tekinthetők meggyőzőnek. |
| Tekintse a berendezéseket különleges teszteknek | hamis | Ha a AssemblyInitialize, AssemblyCleanup, ClassInitialize, ClassCleanup elemeket egyéni bejegyzésként szeretné megjeleníteni a Visual Studio, Visual Studio Code, valamint Test Explorer és .trx naplójában, állítsa ezt az értéket igaz. |
| térképezni a nem meggyőzőt sikertelenséghez | hamis | Ha egy teszt nem meggyőző állapottal fejeződik be, azt a Test Explorer kihagyott állapotára térképezik fel. Ha azt szeretné, hogy a nem meggyőző tesztek sikertelenként jelenjenek meg, állítsa az értéket igaz értékre. |
| nem futtatható leképezése sikertelenként | igaz | Egy érték, amely azt jelzi, hogy egy nem futtatható eredmény megfeleltethető-e a sikertelen tesztnek. |
| Osztály és Összeszerelési Tisztítási Figyelmeztetések Hibaként Kezelése | hamis | Ha hibaként szeretné látni az osztálytakarítás során felmerülő problémákat, állítsa ezt az értéket igaz-ra. |
| Felfedezési figyelmeztetések kezelése hibaként | hamis | Ha hibaként szeretné jelenteni a tesztfelderítési figyelmeztetéseket, állítsa ezt az értéket igaz értékre. |
Példa:
{
"mstest": {
"execution": {
"considerEmptyDataSourceAsInconclusive": false,
"considerFixturesAsSpecialTests": false,
"mapInconclusiveToFailed": true,
"mapNotRunnableToFailed": true,
"treatClassAndAssemblyCleanupWarningsAsErrors": false,
"treatDiscoveryWarningsAsErrors": false
}
}
}
timeout beállítások
A szakasz összes beállítása a timeout elemhez tartozik.
| Bejegyzés | Alapértelmezett | Leírás |
|---|---|---|
| összeállítás-tisztítás | 0 | Adja meg globálisan a szerelvénykarbantartási módszer egyes példányaira alkalmazandó időtúllépést. |
| összeállításInicializálás | 0 | Adja meg globálisan az egyes szerelvény-inicializálási metódusokra alkalmazandó időtúllépést. |
| osztálykód-tisztítás | 0 | Adja meg globálisan az osztályok takarítási módszerei egyes példányaira alkalmazandó időtúllépést. |
| osztályInicializálás | 0 | Adja meg globálisan az egyes osztály inicializálási metódusokra alkalmazandó időtúllépést. |
| teszt | 0 | Adja meg globálisan a teszt időtúllépését. |
| testCleanup | 0 | Adja meg globálisan az időkorlátot, amelyet a teszttakarítási módszer minden egyes példányára alkalmazni kell. |
| tesztInicializálás | 0 | Adja meg globálisan a tesztelési inicializálási módszer egyes példányaira alkalmazandó időtúllépést. |
| használjKooperatívTörlést | hamis | Ha trueértékre van állítva, időtúllépés esetén az MSTest csak a CancellationToken törlését indítja el, de nem állítja le a metódus megfigyelését. Ez a viselkedés hatékonyabb, de a felhasználóra támaszkodik, hogy megfelelően továbbítsa a tokent az összes útvonalon. |
Jegyzet
[Timeout] metódusban megadott attribútum felülírja a globális időtúllépést. Például, egy [AssemblyCleanup] jelölésű metóduson a [Timeout(1000)] felülbírálja a globális assemblyCleanup időkorlátot.
Példa:
{
"mstest": {
"timeout": {
"assemblyCleanup": 0,
"assemblyInitialize": 0,
"classCleanup": 0,
"classInitialize": 0,
"test": 0,
"testCleanup": 0,
"testInitialize": 0,
"useCooperativeCancellation": false
}
}
}
Példa testconfig.json fájlra
Az alábbi JSON egy tipikus .testconfig.json fájl tartalmát mutatja be. Másolja ki ezt a kódot, és szerkessze az igényeinek megfelelően.
A fájl minden eleme nem kötelező, mert alapértelmezett értékkel rendelkezik.
{
"platformOptions": {
},
"mstest": {
"execution": {
"mapInconclusiveToFailed" : true,
"disableAppDomain": true,
"considerFixturesAsSpecialTests" : false,
},
"parallelism" : {
"enabled": true,
"scope": "method",
},
"output": {
"captureTrace": false
}
}
}