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.
Microsoft. A Testing.Platform (MTP) a VSTest egyszerű és hordozható alternatíva a tesztek minden környezetben való futtatásához, beleértve a folyamatos integrációs (CI) folyamatokat, a parancssori felületet, a Visual Studio Test Explorert és a VS Code Test Explorert. Az MTP közvetlenül be van ágyazva a tesztprojektekbe, így nincs szükség más alkalmazásfüggőségekre a tesztek futtatásához, mint például vstest.console vagy dotnet test.
Tipp
Ha segítségre van szüksége a VSTest és az MTP közötti választáshoz, kezdje a tesztplatformok áttekintésével.
Ezt a cikket akkor érdemes használnia, amikor már eldöntötte, hogy az MTP-t használja, és szeretné megismerni annak modelljét, képességeit és működési viselkedését.
Az MTP nyílt forráskód. A Microsoft.Testing.Platform kód a microsoft/testfx GitHub adattárban található.
Kezdés itt
Az alábbi elérési utat használja, attól függően, mire van szüksége:
- Tesztek futtatása és hibakeresése parancssori felületről, IDE-ről vagy CI-ről: Tesztek futtatása és hibakeresése
- A platform viselkedésének megismerése a parancssori felületen: Tesztelés a következővel
dotnet test: - Platform- és bővítmény parancssori felület kapcsolóinak megkeresése egy helyen: MTP CLI-beállítások hivatkozása
- Keretrendszerfuttatók konfigurálása: Tesztek futtatása MSTest - vagy MTP-támogatással az NUnitban (NUnit-futó)
- Meglévő VSTest-beállítás migrálása: Migrálás VSTestről MTP-be
- Diagnosztikák, lefedettség és jelentéskészítés hozzáadása: MTP-funkciók
- Saját bővítmény létrehozása: MTP-architektúra, bővítménypontok és szolgáltatások
MTP-pillérek
Ez az új tesztelési platform a .NET fejlesztői élménytesztelési csapat tapasztalataira épül, és célja, hogy kezelje a .NET Core 2016-os kiadása óta felmerülő kihívásokat. Bár a .NET-keretrendszer és a .NET Core/.NET között magas szintű kompatibilitás áll fenn, néhány kulcsfontosságú funkció, például a beépülő modulrendszer és a .NET-fordítások új lehetséges formai tényezői összetettsé tették az új futtatókörnyezeti funkciót a jelenlegi VSTest platform architektúrával.
Az új tesztplatform fejlődésének fő hajtó tényezőit az alábbiakban találja:
Determinizmus: Annak biztosítása, hogy ugyanazokat a teszteket különböző környezetekben (helyi, CI) futtassa, ugyanazt az eredményt fogja eredményezni. Az új futtatókörnyezet nem támaszkodik tükröződésre vagy más dinamikus .NET futtatókörnyezeti funkcióra a tesztfuttatás koordinálásához.
futtatókörnyezet átláthatósága: A tesztkörnyezet nem zavarja a teszt-keretrendszer kódját, nem hoz létre izolált környezeteket, például
AppDomainvagyAssemblyLoadContext, és nem használ tükrözési vagy egyéni szerelvény-feloldókat.bővítmények fordítási idejének regisztrálása: A bővítményeket, például a tesztelési keretrendszereket és a folyamaton kívüli bővítményeket a fordítási idő alatt regisztrálják a determinizmus biztosítása és az inkonzisztenciák észlelésének megkönnyítése érdekében.
Zero-függőségek: A platform magja egyetlen .NET szerelvény,
Microsoft.Testing.Platform.dll, amely a támogatott futtatókörnyezeteken kívül nem rendelkezik függőségekkel.Hostable: A tesztkörnyezet bármely .NET alkalmazásban üzemeltethető. Bár a konzolalkalmazásokat gyakran használják tesztek futtatására, bármilyen típusú .NET alkalmazásban létrehozhat tesztalkalmazást. Ez lehetővé teszi a tesztek futtatását olyan speciális környezetekben, például eszközökön vagy böngészőkben, ahol korlátozások lehetnek.
Az összes .NET űrlaptényező támogatása: Az aktuális és jövőbeli .NET űrlaptényezők támogatása, beleértve a natív AOT-t is.
Performant: A funkciók és a bővítménypontok közötti megfelelő egyensúly megtalálása a futtatókörnyezet nem alapvető kóddal való blobolásának elkerülése érdekében. Az új tesztplatform úgy lett kialakítva, hogy "vezényelje" a tesztfuttatást, az implementációs részletek biztosítása helyett.
Bővíthető elég: Az új platform bővíthetőségi pontokra épül, így lehetővé teszi a futtatókörnyezet végrehajtásának maximális testreszabását. Lehetővé teszi a tesztfolyamat-gazdagép konfigurálását, a tesztelési folyamat megfigyelését és a tesztelési keretrendszerből származó információk felhasználását a tesztgazdafolyamaton belül.
egymodulos üzembe helyezési: Az üzemeltethetőségi funkció egyetlen modul üzembehelyezési modelljét teszi lehetővé, ahol egyetlen fordítási eredmény használható az összes bővíthetőségi pont támogatására, mind a folyamaton kívül, mind a folyamatban, anélkül, hogy különböző végrehajtható modulokat kellene szállítania.
Támogatott tesztelési keretrendszerek
- MSTest. Az MSTestben az MTP támogatása az MSTest-futón keresztül történik.
- NUnit. Az NUnitban az MTP támogatása az NUnit futón keresztül történik.
- xUnit.net. További információ: Microsoft Testing Platform (xUnit.net v3) és Microsoft Testing Platform (xUnit.net v2) az xUnit.net dokumentációból.
- TUnit: teljes egészében az MTP-n alapul, további információkért lásd a TUnit dokumentációját.
Támogatott cél-keretrendszerek
Az MTP támogatja a .NET (.NET 8-as és újabb), .NET-keretrendszert (4.6.2-es és újabb verziók), és a NETStandard 2.0-t célozza meg a többi futtatókörnyezettel való maximális kompatibilitás érdekében.
Tesztek futtatása és hibakeresése
Az MTP-tesztprojektek parancssori felületről, Visual Studio, Visual Studio Code-ból és CI-pipelines történő futtatásáról és hibakereséséről a Futtatási és hibakeresési tesztek című témakörben talál részletes útmutatást.
Beállítások
A platform- és bővítmény parancssori beállításainak teljes listájáért tekintse meg az MTP CLI-beállításokra vonatkozó hivatkozást.
MSBuild-integráció
A NuGet-csomag Microsoft. A Testing.Platform.MSBuild különböző integrációkat biztosít az MTP és az MSBuild között:
- A
dotnet testtámogatása. További információ: Tesztelés dotnet-teszttel. - A
ProjectCapabilityésVisual StudioTesztböngészők által igényeltVisual Studio Codetámogatása. - A belépési pont automatikus létrehozása (
Mainmetódus). - A konfigurációs fájl automatikus létrehozása.
- Telepített bővítménycsomagok automatikus észlelése és regisztrálása.
Ha ez a csomag aktív (az MSTest, az NUnit és az xUnit futók alapértelmezett beállítása), akkor csak egy bővítmény NuGet-csomag telepítése szükséges — a bővítmények automatikusan regisztrálódnak kódmódosítás nélkül. Ha a beállítással <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>letiltja az automatikusan létrehozott belépési pontot, manuálisan kell regisztrálnia a bővítményeket a Main metódusban. Minden bővítményoldal dokumentálja a manuális regisztrációs hívást.
Megjegyzés
Ez az integráció tranzitív módon működik (egy másik projekt, amely hivatkozik egy csomagra hivatkozó projektre, úgy fog viselkedni, mintha a csomagra hivatkozik), és letiltható a IsTestingPlatformApplication MSBuild tulajdonságon keresztül.