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 (förhandsversion)
Kommentar
Visual Studio Test Explorer stöder protokollet Microsoft.Testing.Platform i förhandsversionerna sedan 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.