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 egy jól definiált életciklust biztosít a tesztosztályokhoz és a tesztelési módszerekhez, lehetővé téve a beállítási és a lebontási műveleteket a tesztvégrehajtási folyamat különböző szakaszaiban. Az életciklus a következő három szakaszba csoportosítható:
- Szerelvényszintű életciklus
- Osztályszintű életciklus
- Tesztszintű életciklus
Az életciklus-események végrehajtása a legmagasabb szinttől (szerelvénytől) a legalacsonyabb szintig (vizsgálati módszer) történik. A végrehajtás sorrendje a következő:
- Szerelvény inicializálása
- Osztály inicializálása (minden tesztosztályhoz)
- Tesztelési inicializálás (minden vizsgálati módszerhez)
- Teszt végrehajtása
- Tesztkarbantartás (minden vizsgálati módszerhez)
- Teszt-osztályok tisztítása (minden egyes teszt-osztályhoz)
- Szerelvény takarítása
Szerelvényszintű életciklus
A szerelvény életciklusa a teljes szerelvény életciklusát ismerteti, amely magában foglalja az összes tesztosztályt és metódust. A szerelvény életciklusának kezeléséhez az MSTest biztosítja a AssemblyInitialize és a AssemblyCleanup attribútumokat. Ezekről az attribútumokról a AssemblyInitialize és a AssemblyCleanup dokumentációjában talál további információt.
Osztályszintű életciklus
A tesztosztály életciklusa a szerelvényen belüli egyes tesztosztályok életciklusára vonatkozik, és a ClassInitialize és a ClassCleanup attribútumokkal valósítható meg. Ezek az attribútumok lehetővé teszik az osztály összes tesztje előtt és után végrehajtott beállítási és lebontási módszerek definiálását. Ezekről az attribútumokról további információt a ClassInitialize és a ClassCleanup dokumentációjában talál. Az osztályszintű életciklus osztályonként csak egyszer fut, függetlenül az osztályban lévő tesztek számától.
Tesztszint életciklus
A tesztszintű életciklus minden vizsgálati módszerhez végrehajtásra kerül. A paraméteres tesztek esetében a rendszer minden paraméterkészletet külön vizsgálati módszerként kezel, és az életciklust minden paraméterkészlet esetében végrehajtja a rendszer. A tesztszintű életciklus a telepítés, a végrehajtás és a törlés szerint csoportosítható úgy, hogy a beállítás és a törlés több implementálási módot is támogat.
Beállítás
A tesztszintű életciklus beállítási fázisa felelős a tesztkörnyezet előkészítéséért az egyes vizsgálati módszerek végrehajtása előtt. Ez az TestInitialize
attribútummal vagy a tesztosztály konstruktorának implementálásával érhető el. Öröklés esetén a metódusok végrehajtása TestInitialize
az alaposztály és a származtatott osztály sorrendjét követi. Ha egy tesztosztály konstruktort implementál, azt a metódus előtt hajtja végre.TestInitialize
Az attribútummal kapcsolatos TestInitialize
további információkért tekintse meg a tesztszintű attribútum dokumentációját.
Megjegyzés:
Az osztálykonstruktortól eltérően a metódusok aszinkronok is lehetnek, TestInitialize
és támogatják az attribútumhasználatot, például a TimeoutAttribute
.
Kivégzés
A végrehajtási fázis a tényleges vizsgálati módszer végrehajtásának fázisa. Ha egy tesztmetódus egy Taskot vagy ValueTaskot ad vissza, a tesztmetódus meg lesz várva.
Figyelmeztetés
Aszinkron tesztelési módszerek esetén nincs biztosítva a SynchronizationContext. Ez nem vonatkozik az UITestMethod
UWP- és WinUI-tesztekre, mivel azok a SynchronizationContextet futtató felhasználói felületi szálon futnak.
Takarítás
A tesztszintű életciklus tisztítási fázisa felelős a tesztkörnyezet megtisztításáért az egyes vizsgálati módszerek végrehajtása után.
Ez az attribútummal vagy a TestCleanup
tesztosztály felületének IDisposable
/IAsyncDisposable
implementálásával érhető el.
Ha egy tesztosztály implementálja a IDisposable
vagy a IAsyncDisposable
interfészt, akkor a Dispose
metódus után a /DisposeAsync
TestCleanup
metódust hajtja végre.
Öröklés esetén a TestCleanup
metódusok végrehajtása a származtatott osztály és az alaposztály sorrendjét követi.
Az attribútummal kapcsolatos TestInitialize
további információkért tekintse meg a tesztszintű attribútum dokumentációját.
Rendelés
A tesztszintű életciklus teljes sorrendje a következő:
- Tesztosztály példányának létrehozása
- A(z)
TestContext
tulajdonság beállítása, ha van - A TestInitialize futtatása (ha implementálva van)
- Tesztmetódus végrehajtása
- Frissítés
TestContext
teszteredményekkel (példáulOutcome
tulajdonsággal) - A TestCleanup futtatása implementálva
- Futtasd az DisposeAsync-et, ha implementálva van
- Ha implementálva van, futtassa a felszabadítást