Microsoft.Testing.Platform és VSTest összehasonlítása
Microsoft.Testing.Platform
A VSTest egyszerű és hordozható alternatíva a tesztek parancssori, folyamatos integrációs (CI) folyamatokban, a Visual Studio Test Explorerben és a Visual Studio Code-ban való futtatásához. Ebben a cikkben megismerheti az MSTest-futó és a VSTest közötti főbb különbségeket.
A tesztvégrehajtás különbségei
A tesztek végrehajtása a futótól függően különböző módon történik.
VSTest-tesztek végrehajtása
A VSTest a Visual Studióval, a .NET SDK-val és a Microsoft.TestPlatform NuGet csomag önálló eszközével rendelkezik. A VSTest egy futtatható futót használ a tesztek futtatásához, amelyet vstest.console.exe
közvetlenül vagy keresztül dotnet test
lehet használni.
Microsoft.Testing.Platform-tesztek végrehajtása
A Microsoft.Testing.Platform közvetlenül a tesztprojektbe van beágyazva, és nem szállít további végrehajtható fájlokat. A projekt végrehajtható futtatásakor a tesztek lefutnak. A Microsoft.Testing.Platform tesztjeinek futtatásával kapcsolatos további információkért tekintse meg a Microsoft.Testing.Platform áttekintését: Tesztek futtatása és hibakeresése.
Névterek és NuGet-csomagok
Ha szeretné megismerni a Microsoft.Testing.Platform
VSTestet és a VSTestet, érdemes megismernie az egyes névtereket és NuGet-csomagokat.
VSTest-névterek
A VSTest tesztelési eszközök gyűjteménye, amelyeket tesztplatformnak is neveznek. A VSTest-forráskód nyílt forráskódú, és a Microsoft/vstest GitHub-adattárban érhető el. A kód a névteret Microsoft.TestPlatform.*
használja.
A VSTest bővíthető, és a gyakori típusok a Microsoft.TestPlatform.ObjectModel NuGet csomagban találhatók.
Microsoft.Testing.Platform névterek
A Microsoft.Testing.Platform a Microsoft.Testing.Platform NuGet-csomagon és a Microsoft.Testing.*
névtérben található egyéb kódtárakon alapul. A VSTesthez hasonlóan ez Microsoft.Testing.Platform
is nyílt forráskódú, és microsoft/testfx GitHub-adattárral rendelkezik.
Kommunikációs protokoll (előzetes verzió)
Feljegyzés
A Visual Studio Test Explorer 17.10-től kezdve támogatja a Microsoft.Testing.Platform protokollt az előzetes verziókban. Ha a Visual Studio korábbi verzióival futtatja/hibakereséssel végzi a teszteket, a Test Explorer és a régi protokoll fogja használni vstest.console.exe
ezeket a teszteket.
A Microsoft.Testing.Platform JSON-RPC-alapú protokollt használ a Visual Studio és a tesztfuttatási folyamat közötti kommunikációhoz. A protokoll dokumentálva van az MSTest GitHub-adattárban.
A VSTest JSON-alapú kommunikációs protokollt is használ, de nem JSON-RPC-alapú.
Az új protokoll letiltása
Ha le szeretné tiltani az új protokoll használatát a Test Explorerben, szerkesztheti a csprojot, és eltávolíthatja a képességet TestingPlatformServer
.
<ItemGroup>
<ProjectCapability Remove="TestingPlatformServer" />
</ItemGroup>
Végrehajtható fájlok
A VSTest több végrehajtható fájlt szállít, nevezetesen vstest.console.exe
, testhost.exe
és datacollector.exe
. Az MSTest azonban közvetlenül a tesztprojektbe van beágyazva, és nem küld más végrehajtható fájlokat. A tesztprojekt által lefordított végrehajtható fájl az összes tesztelési eszköz üzemeltetésére és a tesztek futtatásához szükséges összes feladat végrehajtására szolgál.