Delen via


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 Microsoft.Testing.Platform 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 voor het uitvoeren van tests, vstest.console.exegenoemd, die rechtstreeks of via dotnet testkunnen 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 voor meer informatie over het uitvoeren van Microsoft.Testing.Platform-tests Overzicht 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 ervan worden gebruikt.

VSTest-naamruimten

VSTest is een verzameling testhulpprogramma's die ook wel bekend staan als het Test Platform. De VSTest-broncode is opensource en beschikbaar in de microsoft/vstest GitHub-opslagplaats. De code maakt gebruik van de Microsoft.TestPlatform.*-naamruimte.

VSTest is uitbreidbaar en algemene typen worden in Microsoft.TestPlatform.ObjectModel NuGet-pakket geplaatst.

Microsoft.Testing.Platform-naamruimten

Microsoft.Testing.Platform is gebaseerd op Microsoft.Testing.Platform NuGet-pakket en andere bibliotheken in de Microsoft.Testing.* naamruimte. Net als VSTest is de Microsoft.Testing.Platform opensource en heeft een microsoft/testfx GitHub-opslagplaats.

Communicatieprotocol

Notitie

Visual Studio Test Explorer ondersteunt het Microsoft.Testing.Platform-protocol sinds 17.12 en hoger. Als u uw tests uitvoert/foutopsporing uitvoert met eerdere versies van Visual Studio, gebruikt Test Explorer vstest.console.exe en het oude protocol om deze tests uit te voeren.

Microsoft.Testing.Platform maakt gebruik van een JSON-RPC gebaseerd protocol om te communiceren tussen Visual Studio en het testrunnerproces. Het protocol wordt gedocumenteerd in de MSTest GitHub-opslagplaats.

VSTest maakt ook gebruik van een op JSON gebaseerd communicatieprotocol, maar is niet JSON-RPC gebaseerd.

Het nieuwe protocol uitschakelen

Als u het gebruik van het nieuwe protocol in Test Explorer wilt uitschakelen, kunt u het project bewerken om de volgende eigenschap toe te voegen: <DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>.

U kunt ook naar opties voor preview-functies in Visual Studio gaan en de selectie van de optie 'Testplatformservermodus gebruiken' opheffen.

Uitvoerbare bestanden

VSTest verzendt meerdere uitvoerbare bestanden, met name vstest.console.exe, testhost.exeen datacollector.exe. Microsoft.Testing.Platform wordt 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.

Zie ook