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


Tesztplatformok áttekintése .NET

A .NET a tesztelési keretrendszer és a tesztplatform különböző összetevők, amelyek együttműködnek a tesztek felderítésében és futtatásában.

  • A tesztelési keretrendszer határozza meg az ön által írt tesztmodellt, például MSTest, NUnit, xUnit.net vagy TUnit.
  • A tesztplatform teszteket futtat, integrálódik az IDE-kkel és a parancssori felülettel (CLI), és közösen használható bővítménypontokat biztosít.

Két tesztplatform közül választhat:

  • VSTest
  • Microsoft.Testing.Platform (MTP)

Jótanács

A legegyszerűbb beállításhoz válasszon egy platformot az adattárhoz, és konfigurálja a tesztprojekteket, a CI-t és az eszközhasználatot következetesen ehhez a platformhoz. Ne keverje a VSTest-alapú és a Microsoft.Testing.Platform-alapú .NET tesztprojekteket ugyanabban a megoldásban, és ne futtasson konfigurációt, mert ez a forgatókönyv nem támogatott. Ha a VSTesttől (például C++ vagy JavaScript-tesztektől) függő nem .NET teszteket is futtat, ezeket a teszteket az MTP-alapú .NET tesztektől eltérő konfigurációkban futtathatja.

A platform kiválasztása

A gyors választáshoz használja az alábbi forgatókönyveket.

Felhasználási eset Válassz Miért
Natív AOT-ra vagy vágási tesztvégrehajtási forgatókönyvekre van szüksége. Microsoft.Testing.Platform Az MTP támogatja ezeket a modern üzembehelyezési forgatókönyveket, míg a VSTest nem.
Csomagolt WinUI- vagy UWP-tesztprojekteket készít. VSTest Az MTP jelenleg nem támogatja ezeket a projekttípusokat.
Össze kell kevernie .NET teszteket és nem .NET tesztadaptereket (például JavaScript- vagy C++ adaptereket). VSTest A VSTest támogatja a vegyes nyelvű adapteres forgatókönyveket, míg az MTP .NET-specifikus.
Azt szeretné, hogy a tesztprojektek normál végrehajthatóként viselkedjenek (dotnet run, közvetlenül végrehajtható futtatás, dotnet watch, és indítási projekt F5-folyamatok). Microsoft.Testing.Platform Az MTP először végrehajtható, így a tesztalkalmazások a helyi és CI-munkafolyamatokban a standard .NET alkalmazásokhoz hasonlóan futnak.
A meglévő eszközök régen kialakított integrációira támaszkodhat. VSTest A VSTest a leghosszabb kompatibilitási rekorddal rendelkezik a meglévő termékek, feladatok és folyamatok között. Az MTP támogatása egyre nő az ökoszisztémában, de egyes integrációk lemaradhatnak a VSTest-hez képest.
A szigorú alapértelmezett beállításokat és a explicit viselkedést részesíti előnyben. Microsoft.Testing.Platform Az MTP a determinisztikus végrehajtást részesíti előnyben egy egyszerűsített, opt-in kiterjesztésű modellel és a buildidő-regisztrációval. Például sikertelen lehet, ha nincsenek tesztek, csökkenti a környezetfüggő variabilitást, és lehetővé teszi az egyes bővítmények letiltását környezetenként.
A lágyabb, szélesebb, visszamenőlegesen kompatibilis alapértelmezett értékeket részesíti előnyben. VSTest Mindkét platform gondoskodik a visszamenőleges kompatibilitásról. A VSTest a különböző, meglévő eszközláncok kompatibilitás-orientált alapértelmezett beállításait részesíti előnyben, míg az MTP a saját bővítménymodellben nyújt visszamenőleges kompatibilitást.
Önt egy VSTest-specifikus probléma vagy viselkedés blokkolja az aktuális munkafolyamata során. Microsoft.Testing.Platform A futtatókörnyezeti modell és a bővítményarchitektúra különbségei miatt sok esetben ugyanez a munkafolyamat nem lesz hatással az MTP-be való áthelyezéskor.

Ha a konkrét használati eset nem szerepel a listában, mindkét platform érvényes választás.

Integrációs és eszközhasználati támogatás

Integrációs terület VSTest Microsoft.Testing.Platform
IDE-integráció A VSTest protokolltól és adaptertől függő Visual Studio és egyéb eszközök érett integrációja. Visual Studio és Visual Studio Code forgatókönyvekben támogatott, az ökoszisztéma egyes részeiben végzett folyamatos integrációs munkával.
CI és külső eszközök Széles körű támogatás a régóta meglévő Microsoft- és nem Microsoft-eszközök és feladatok között. A Azure DevOps használhatja a VSTest tevékenységet (VSTest@3, vstest.console) vagy a .NET tevékenységet (DotNetCoreCLI@2, dotnet test). Ci-ben és modern .NET munkafolyamatokban működik, de egyes külső integrációk továbbra is elmaradhatnak a VSTesttől. A Azure DevOps használja a .NET feladatot (DotNetCoreCLI@2, dotnet test).
dotnet test Viselkedés Alapértelmezett VSTest mód. A VSTest argumentumai és viselkedése érvényes. Natív MTP mód .NET 10 SDK-ban és újabb verziókban érhető el.

A módokkal és argumentumokkal kapcsolatos dotnet test részletes információkért lásd: Tesztelés a következővel dotnet test: .

Kezdés a tesztelési keretrendszerből

Ha a VSTestet választja

Ha a Microsoft.Testing.Platformot választja

Következő lépések