Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Режим сервера MTP позволяет редактору, IDE или другому инструменту тестирования запускать тестовое приложение и управлять обнаружением и выполнением через JSON-RPC. Используйте режим сервера при создании инструментов вокруг MTP. Для обычных запусков командной строки и CI запустите тестовое приложение напрямую или используйте dotnet test.
Запустите общедоступный сервер JSON-RPC с --server или --server jsonrpc.
Important
SDK .NET использует отдельный внутренний двоичный протокол через --server dotnettestcli. Не передавайте это значение вручную.
dotnet test настраивает аргументы транспорта и протокола.
Использование исходного клиента
Начиная с MTP 2.4.0, пакет Microsoft.Testing.Platform.ServerMode.Client.Sources предоставляет канонический клиент для протокола JSON-RPC. Пакет внедряет источник C# в проект вместо добавления сборки среды выполнения.
Конфигурация только для источника предусматривает следующее:
- Нет библиотеки DLL среды выполнения или дополнительных зависимостей развертывания.
- Сериализация, совместимая с Native AOT и не использующая рефлексию.
- Типы протоколов и код сериализации из того же репозитория, что и сервер MTP.
Внедрённые объекты типа MtpServerClient и IMtpServerClient могут инициализировать соединение, обнаруживать тесты, запускать тесты, запрашивать завершение работы сервера и сообщать об обновлениях тестовых узлов. Типы остаются internal для вашей сборки.
Соответствие требованиям клиента
Используйте C# 12 или более поздней версии. Пакет устанавливает для LangVersion значение 12.0, если в проекте не указана версия языка. Он также предоставляет внутренние типы совместимости для .NET Framework 4.6.2 и netstandard2.0.
Удалите любую рукописную копию клиента MTP перед добавлением пакета, чтобы избежать дублирования внутренних типов.
Выбор поведения подключения
Установите значение MtpServerClientOptions.IsStateful, чтобы указать серверу, сохраняет ли клиент состояние между запросами:
- Оставьте значение
falseдля одного запроса обнаружения или выполнения, за которым следует выход. - Задайте значение
trueдля сеанса редактора или интегрированной среды разработки, который отправляет несколько запросов по одному подключению.
Клиент отправляет этот параметр с помощью возможности экспериментального capabilities.testing.isStateful протокола.