Jämförelse mellan Microsoft.Testing.Platform och VSTest
Microsoft.Testing.Platform
är ett enkelt och portabelt alternativ till VSTest för att köra tester på kommandoraden, i CI-pipelines (continuous integration), i Visual Studio Test Explorer och i Visual Studio Code. I den här artikeln får du lära dig de viktigaste skillnaderna mellan MSTest-löparen och VSTest.
Skillnader i testkörning
Tester utförs på olika sätt beroende på löparen.
Köra VSTest-tester
VSTest levereras med Visual Studio, .NET SDK och som ett fristående verktyg i NuGet-paketet Microsoft.TestPlatform . VSTest använder en körbar löpare för att köra tester som kallas vstest.console.exe
, som kan användas direkt eller via dotnet test
.
Köra Microsoft.Testing.Platform-tester
Microsoft.Testing.Platform är inbäddat direkt i testprojektet och skickar inga extra körbara filer. När du kör projektet körbart körs testerna. Mer information om hur du kör Microsoft.Testing.Platform-tester finns i Översikt över Microsoft.Testing.Platform: Kör och felsöka tester.
Namnområden och NuGet-paket
För att bekanta dig med Microsoft.Testing.Platform
och VSTest är det bra att förstå de namnområden och NuGet-paket som används av var och en.
VSTest-namnområden
VSTest är en samling testverktyg som även kallas testplattformen. VSTest-källkoden är öppen källkod och finns på GitHub-lagringsplatsen microsoft/vstest . Koden använder Microsoft.TestPlatform.*
namnområdet.
VSTest är utökningsbart och vanliga typer placeras i Microsoft.TestPlatform.ObjectModel NuGet-paketet.
Microsoft.Testing.Platform-namnområden
Microsoft.Testing.Platform baseras på NuGet-paketet Microsoft.Testing.Platform och andra bibliotek i Microsoft.Testing.*
namnområdet. Precis som VSTest Microsoft.Testing.Platform
är den öppen källkod och har en Microsoft/testfx GitHub-lagringsplats.
Kommunikationsprotokoll
Kommentar
Visual Studio Test Explorer stöder protokollet Microsoft.Testing.Platform från version 17.10 och senare. Om du kör/felsöker dina tester med hjälp av tidigare versioner av Visual Studio använder vstest.console.exe
Test Explorer och det gamla protokollet för att köra dessa tester.
Microsoft.Testing.Platform använder ett JSON-RPC-baserat protokoll för att kommunicera mellan Visual Studio och testkörprocessen. Protokollet dokumenteras i MSTest GitHub-lagringsplatsen.
VSTest använder också ett JSON-baserat kommunikationsprotokoll, men det är inte JSON-RPC-baserat.
Inaktivera det nya protokollet
Om du vill inaktivera användningen av det nya protokollet i Test Explorer kan du redigera csproj och ta bort TestingPlatformServer
funktionen.
<ItemGroup>
<ProjectCapability Remove="TestingPlatformServer" />
</ItemGroup>
Körbara filer
VSTest levererar flera körbara filer, särskilt vstest.console.exe
, testhost.exe
och datacollector.exe
. MSTest är dock inbäddat direkt i testprojektet och skickar inga andra körbara filer. Det körbara testprojektet som kompileras till används som värd för alla testverktyg och utför alla uppgifter som krävs för att köra tester.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för