Megosztás a következőn keresztül:


A Microsoft.Testing.Platform áttekintése

A Microsoft.Testing.Platform a VSTest egyszerű és hordozható alternatíva a tesztek minden környezetben való futtatásához, beleértve a folyamatos integrációs (CI) pipelines, a parancssori felület, a Visual Studio a Test Explorer és a VS Code Test Explorer használatát. A Microsoft.Testing.Platform közvetlenül a tesztprojektekbe van beágyazva, és nincsenek más alkalmazásfüggőségek, például vstest.console vagy dotnet test a tesztek futtatásához.

Tipp

Ha segítségre van szüksége a VSTest és a Microsoft.Testing.Platform közötti választáshoz, kezdje a tesztplatformok áttekintésével.

Ezt a cikket akkor érdemes használnia, ha már eldöntötte, hogy a Microsoft.Testing.Platformot használja, és szeretné megismerni annak modelljét, képességeit és működési viselkedését.

Microsoft.Testing.Platform nyílt forráskódú. A Microsoft.Testing.Platform GitHub adattárban található kód.

Kezdés itt

Az alábbi elérési utat használja, attól függően, mire van szüksége:

Microsoft.Testing.Platform alapelvek

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

A Microsoft.Testing.Platform támogatja a .NET (.NET 8-as és újabb verziók), .NET-keretrendszert (4.6.2-s é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át a Microsoft.Testing.Platform CLI-beállításokra vonatkozó hivatkozásban találja.

MSBuild-integráció

A NuGet-csomag Microsoft.Testing.Platform.MSBuild különböző integrációkat biztosít az MSBuild Microsoft.Testing.Platform számára:

  • 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: