Microsoft.Testing.Platform (MTP) áttekintése

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:

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 AppDomain vagy AssemblyLoadContext, é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

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 és Visual Studio Tesztböngészők által igényelt Visual Studio Code támogatása.
  • A belépési pont automatikus létrehozása (Main metó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.

Lásd még: