Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.exe
genoemd, die 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 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.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.
Migreren vanuit VSTest
Naast de stappen die specifiek zijn voor uw testframework, moet u uw testinfrastructuur bijwerken om ruimte te bieden aan Microsoft.Testing.Platform
.
dotnet test
Opdrachtregelopties van dotnet test
zijn onderverdeeld in twee categorieën: gerelateerde argumenten bouwen en gerelateerde testen.
De aan build gerelateerde argumenten worden doorgegeven aan de opdracht dotnet build
en hoeven daarom niet te worden bijgewerkt voor het nieuwe platform. Hieronder staan de gerelateerde argumenten voor bouwen:
-a|--arch <ARCHITECTURE>
--artifacts-path <ARTIFACTS_DIR>
-c|--configuration <CONFIGURATION>
-f|--framework <FRAMEWORK>
-e|--environment <NAME="VALUE">
--interactive
--no-build
--nologo
--no-restore
-o|--output <OUTPUT_DIRECTORY>
--os <OS>
-r|--runtime <RUNTIME_IDENTIFIER>
-v|--verbosity <LEVEL>
De testgerelateerde argumenten zijn specifiek voor VSTest en moeten dus worden getransformeerd om overeen te komen met het nieuwe platform. In de volgende tabel ziet u de koppeling tussen de VSTest-argumenten en het nieuwe platform.
VSTest-argument | Nieuw platformargument |
---|---|
--test-adapter-path <ADAPTER_PATH> |
Niet ondersteund |
--blame |
Niet ondersteund |
--blame-crash |
--crashdump vereist crashdump-extensie |
--blame-crash-dump-type <DUMP_TYPE> |
--crashdump-type vereist crashdump-extensie |
--blame-crash-collect-always |
Niet ondersteund |
--blame-hang |
--hangdump vereist hangdump-extensie |
--blame-hang-dump-type <DUMP_TYPE> |
--hangdump-type vereist hangdump-extensie |
--blame-hang-timeout <TIMESPAN> |
--hangdump-timeout vereist hangdump-extensie |
--collect <DATA_COLLECTOR_NAME> |
Afhankelijk van de gegevensverzamelaar |
-d\|--diag <LOG_FILE> |
--diagnostic |
--filter <EXPRESSION> |
Is afhankelijk van het geselecteerde testframework |
-l\|--logger <LOGGER> |
Hangt af van de logger |
--results-directory <RESULTS_DIR> |
--results-directory <RESULTS_DIR> |
-s\|--settings <SETTINGS_FILE> |
Is afhankelijk van het geselecteerde testframework |
-t\|--list-tests |
--list-tests |
-- <RunSettings arguments> |
--test-parameter (geleverd door VSTestBridge) |
Belangrijk
Voordat u Microsoft.Testing.Platform
argumenten opgeeft, moet u --
toevoegen om de dotnet test
argumenten te scheiden van de nieuwe platformargumenten. Bijvoorbeeld dotnet test --no-build -- --list-tests
.
vstest.console.exe
Als u vstest.console.exe
rechtstreeks gebruikt, raden we u aan deze te vervangen door de opdracht dotnet test
.
Test Explorer
Wanneer u Visual Studio of Visual Studio Code Test Explorer gebruikt, moet u mogelijk de ondersteuning voor het nieuwe testplatform inschakelen.
Visual Studio
Visual Studio Test Explorer ondersteunt het nieuwe testplatform vanaf versie 17.14. Als u een eerdere versie gebruikt, moet u visual studio mogelijk bijwerken naar de nieuwste versie.
Visual Studio Code
Visual Studio Code Test Explorer ondersteunt het nieuwe testplatform vanaf versie X.
Azure DevOps
Wanneer u Azure DevOps-taken gebruikt, moet u mogelijk uw pijplijn bijwerken om het nieuwe testplatform te kunnen gebruiken.
VSTest-taak
Als u de VSTest-taak in Azure DevOps gebruikt, kunt u deze vervangen door de .NET Core-taak.
.NET Core-taak
Als u de .NET Core-taakgebruikt, zijn er geen wijzigingen nodig.