Dela via


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.exeoch 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.