Udostępnij za pośrednictwem


Porównanie Microsoft.Testing.Platform i VSTest

Microsoft.Testing.Platform jest uproszczoną i przenośną alternatywą dla programu VSTest na potrzeby uruchamiania testów w wierszu polecenia, potoków ciągłej integracji w Eksploratorze testów programu Visual Studio i w programie Visual Studio Code. W tym artykule poznasz kluczowe różnice między modułem uruchamiającym testy MSTest i narzędziem VSTest.

Różnice w wykonywaniu testów

Testy są wykonywane na różne sposoby w zależności od modułu uruchamiającego.

Wykonywanie testów VSTest

Program VSTest jest dostarczany z programem Visual Studio, zestawem .NET SDK i jako autonomicznym narzędziem w pakiecie NuGet Microsoft.TestPlatform . Program VSTest używa pliku wykonywalnego modułu uruchamiającego do uruchamiania testów o nazwie vstest.console.exe, które mogą być używane bezpośrednio lub za pośrednictwem dotnet test.

Wykonywanie testów Microsoft.Testing.Platform

Microsoft.Testing.Platform jest osadzony bezpośrednio w projekcie testowym i nie dostarcza żadnych dodatkowych plików wykonywalnych. Po uruchomieniu pliku wykonywalnego projektu testy są uruchamiane. Aby uzyskać więcej informacji na temat uruchamiania testów Microsoft.Testing.Platform, zobacz Microsoft.Testing.Platform overview: Run and debug tests (Omówienie platformy Microsoft.Testing.Platform: uruchamianie i debugowanie testów).

Przestrzenie nazw i pakiety NuGet

Aby zapoznać się z programem i programem VSTest, warto zapoznać się z Microsoft.Testing.Platform przestrzeniami nazw i pakietami NuGet używanymi przez poszczególne elementy.

Przestrzenie nazw VSTest

VSTest to kolekcja narzędzi do testowania, które są również nazywane platformą testową. Kod źródłowy VSTest jest typu open source i dostępny w repozytorium Microsoft/vstest GitHub. Kod używa Microsoft.TestPlatform.* przestrzeni nazw.

Program VSTest jest rozszerzalny i typowe typy są umieszczane w pakiecie NuGet Microsoft.TestPlatform.ObjectModel .

Przestrzenie nazw Microsoft.Testing.Platform

Microsoft.Testing.Platform jest oparty na pakiecie NuGet Microsoft.Testing.Platform i innych bibliotekach Microsoft.Testing.* w przestrzeni nazw. Podobnie jak vsTest, Microsoft.Testing.Platform jest to open source i ma repozytorium Microsoft/testfx GitHub.

Protokół komunikacyjny (wersja zapoznawcza)

Uwaga

Eksplorator testów programu Visual Studio obsługuje protokół Microsoft.Testing.Platform w wersjach zapoznawczych od wersji 17.10. Jeśli uruchamiasz/debugujesz testy przy użyciu wcześniejszych wersji programu Visual Studio, Eksplorator testów użyje vstest.console.exe i starego protokołu do uruchamiania tych testów.

Microsoft.Testing.Platform używa protokołu opartego na protokole JSON-RPC do komunikacji między programem Visual Studio a procesem modułu uruchamiającego testy. Protokół jest udokumentowany w repozytorium MSTest GitHub.

Program VSTest używa również protokołu komunikacyjnego opartego na formacie JSON, ale nie jest oparty na protokole JSON-RPC.

Wyłączanie nowego protokołu

Aby wyłączyć korzystanie z nowego protokołu w Eksploratorze testów, możesz edytować plik csproj i usunąć TestingPlatformServer możliwość.

<ItemGroup>
    <ProjectCapability Remove="TestingPlatformServer" />
</ItemGroup>

Pliki wykonywalne

Program VSTest dostarcza wiele plików wykonywalnych, w szczególności vstest.console.exe, testhost.exei datacollector.exe. Jednak narzędzie MSTest jest osadzone bezpośrednio w projekcie testowym i nie dostarcza żadnych innych plików wykonywalnych. Plik wykonywalny kompilowany w projekcie testowym służy do hostowania wszystkich narzędzi do testowania i wykonywania wszystkich zadań wymaganych do uruchamiania testów.