Поделиться через


Сравнение Microsoft.Testing.Platform и VSTest

Microsoft.Testing.Platform — это упрощенная и переносимая альтернатива VSTest для выполнения тестов в командной строке, в конвейерах непрерывной интеграции (CI) в обозревателе тестов Visual Studio и Visual Studio Code. В этой статье вы узнаете о ключевых различиях между Microsoft.Testing.Platform и VSTest.

Различия в выполнении теста

Тесты выполняются различными способами в зависимости от тестового исполнителя.

Выполнение тестов VSTest

VSTest поставляется с Visual Studio, SDK для .NET и как автономный инструмент в пакете NuGet Microsoft.TestPlatform. VSTest использует исполняемый файл runner для выполнения тестов с именем vstest.console.exe, который можно использовать непосредственно или через dotnet test.

Выполнение тестов Microsoft.Testing.Platform

Microsoft.Testing.Platform внедряется непосредственно в тестовый проект и не отправляет дополнительные исполняемые файлы. При запуске программы вашего проекта выполняются тесты. Дополнительные сведения о выполнении тестов Microsoft.Testing.Platform см. в обзоре Microsoft.Testing.Platform: запуск и отладка тестов.

Пространства имен и пакеты NuGet

Чтобы ознакомиться с Microsoft.Testing.Platform и VSTest, полезно понять пространства имен и пакеты NuGet, используемые каждым из них.

Пространства имен VSTest

VSTest — это коллекция средств тестирования, которые также называются платформой тестирования. Исходный код VSTest является открытым исходным кодом и доступен в репозитории microsoft/vstest GitHub. Код использует пространство имен Microsoft.TestPlatform.*.

VSTest является расширяемым, а распространенные типы помещаются в пакет NuGet Microsoft.TestPlatform.ObjectModel.

Пространства имен Microsoft.Testing.Platform

Microsoft.Testing.Platform основан на пакете Microsoft.Testing.Platform NuGet и других библиотеках в пространстве имен Microsoft.Testing.*. Как и VSTest, Microsoft.Testing.Platform является открытым исходным кодом и имеет репозиторий microsoft/testfx GitHub.

Протокол связи

Заметка

Обозреватель тестов Visual Studio поддерживает протокол Microsoft.Testing.Platform начиная с 17.12. При выполнении и отладке тестов с помощью более ранних версий Visual Studio обозреватель тестов будет использовать vstest.console.exe и старый протокол для выполнения этих тестов.

Microsoft.Testing.Platform использует протокол на основе JSON-RPC для обмена данными между Visual Studio и процессом тестового запуска. Протокол задокументирован в репозитории MSTest GitHub.

VSTest также использует протокол связи на основе JSON, но он не основан на JSON-RPC.

Отключение нового протокола

Чтобы отключить использование нового протокола в обозревателе тестов, можно изменить проект, чтобы добавить следующее свойство: <DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>.

Вы также можете перейти к параметрам предварительных версий функций в Visual Studio и отменить выбор параметра "Использовать режим сервера платформы тестирования".

Исполняемые файлы

VSTest поставляет несколько исполняемых файлов, в частности vstest.console.exe, testhost.exeи datacollector.exe. Однако Microsoft.Testing.Platform внедряется непосредственно в тестовый проект и не отправляет другие исполняемые файлы. Исполняемый файл вашего тестового проекта используется для запуска всех средств тестирования и выполнения всех задач, необходимых для проведения тестов.

См. также