Vergelijking van Microsoft.Testing.Platform en VSTest
Microsoft.Testing.Platform
is een lichtgewicht en draagbaar alternatief voor VSTest voor het uitvoeren van tests in opdrachtregelpijplijnen, in CI-pijplijnen (continue integratie), in Visual Studio Test Explorer en in Visual Studio Code. In dit artikel leert u de belangrijkste verschillen tussen de MSTest runner en VSTest.
Verschillen in testuitvoering
Tests worden op verschillende manieren uitgevoerd, afhankelijk van de runner.
VSTest-tests uitvoeren
VSTest wordt geleverd met Visual Studio, de .NET SDK en als zelfstandig hulpprogramma in het Microsoft.TestPlatform NuGet-pakket. VSTest maakt gebruik van een uitvoerbare runner om tests uit te voeren, die vstest.console.exe
rechtstreeks of via dotnet test
kunnen worden gebruikt.
Microsoft.Testing.Platform-tests uitvoeren
Microsoft.Testing.Platform is rechtstreeks in uw testproject ingesloten en verzendt geen extra uitvoerbare bestanden. Wanneer u het uitvoerbare project uitvoert, worden uw tests uitgevoerd. Zie het overzicht van Microsoft.Testing.Platform voor meer informatie over het uitvoeren van Microsoft.Testing.Platform :Run and debug tests.
Naamruimten en NuGet-pakketten
Als u vertrouwd wilt raken met Microsoft.Testing.Platform
en VSTest, is het handig om inzicht te krijgen in de naamruimten en NuGet-pakketten die door elk worden gebruikt.
VSTest-naamruimten
VSTest is een verzameling testhulpprogramma's die ook wel testplatform worden genoemd. De VSTest-broncode is opensource en beschikbaar in de GitHub-opslagplaats microsoft/vstest . De code maakt gebruik van de Microsoft.TestPlatform.*
naamruimte.
VSTest is uitbreidbaar en algemene typen worden geplaatst in het NuGet-pakket Microsoft.TestPlatform.ObjectModel .
Microsoft.Testing.Platform-naamruimten
Microsoft.Testing.Platform is gebaseerd op het NuGet-pakket Microsoft.Testing.Platform en andere bibliotheken in de Microsoft.Testing.*
naamruimte. Net als VSTest is het Microsoft.Testing.Platform
opensource en heeft het een Microsoft/testfx GitHub-opslagplaats.
Communicatieprotocol (preview)
Notitie
Visual Studio Test Explorer ondersteunt het Protocol Microsoft.Testing.Platform in de preview-versies sinds 17.10 en hoger. Als u uw tests uitvoert/foutopsporing uitvoert met eerdere versies van Visual Studio, gebruikt vstest.console.exe
Test Explorer en het oude protocol om deze tests uit te voeren.
Microsoft.Testing.Platform maakt gebruik van een JSON-RPC-protocol om te communiceren tussen Visual Studio en het testrunner-proces. Het protocol wordt beschreven in de MSTest GitHub-opslagplaats.
VSTest maakt ook gebruik van een op JSON gebaseerd communicatieprotocol, maar is niet gebaseerd op JSON-RPC.
Het nieuwe protocol uitschakelen
Als u het gebruik van het nieuwe protocol in Test Explorer wilt uitschakelen, kunt u de csproj bewerken en de TestingPlatformServer
mogelijkheid verwijderen.
<ItemGroup>
<ProjectCapability Remove="TestingPlatformServer" />
</ItemGroup>
Uitvoerbare bestanden
VSTest verzendt meerdere uitvoerbare bestanden, met name vstest.console.exe
, testhost.exe
en datacollector.exe
. MSTest is echter rechtstreeks in uw testproject ingesloten en verzendt geen andere uitvoerbare bestanden. Het uitvoerbare bestand waarmee uw testproject wordt gecompileerd, wordt gebruikt om alle testhulpprogramma's te hosten en alle taken uit te voeren die nodig zijn om tests uit te voeren.