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.exe
i 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.