Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эти расширения определяют, как и где MTP развертывает и запускает тестовый узел. Они используют экспериментальную ITestHostLauncher точку расширения для управления развертыванием и запуском тестового узла.
Совет
При использовании Microsoft.Testing.Platform.MSBuild необходимо установить NuGet-пакет расширения, чтобы автоматически зарегистрировать это расширение. MsTest, NUnit и xUnit runners включают Microsoft.Testing.Platform.MSBuild транзитивно. Если вы отключите сгенерированную точку входа, вызовите AddSelfRegisteredExtensions, чтобы зарегистрировать пакеты, которые добавляет MSBuild.
Развертывание упакованных приложений
Расширение Microsoft.Testing.Extensions.PackagedApp регистрирует упакованный хост тестирования Windows из структуры выходных данных сборки и активирует его по идентификатору пользовательской модели приложения (AUMID).
Пакет появился в MTP 2.3. Начиная с MTP 2.5, поддерживаются упакованные узлы с полным доверием и узлы AppContainer на всех этапах, включая:
- Упакованные приложения WinUI 3 с полным доверием.
- Современные приложения UWP, использующие
UseUwp. - Классические приложения UWP, предназначенные для
uap10.0. - Хосты WinUI 3
packagedClassicApp, задающиеTrustLevel="appContainer".
MSTest.Sdk версии 4.5 и выше автоматически настраивает это расширение и необходимый вспомогательный компонент модели приложений с полным доверием. Инструкции по настройке и выполнению приложений см. в разделе "Тестирование приложений UWP и WinUI 3 с помощью MSTest и MTP".
Предостережение
Начиная с MTP 2.4, Microsoft.Testing.Extensions.PackagedApp использует ту же схему версионирования, что и релизы MTP, а его публичный API регистрации больше не является экспериментальным. Универсальная ITestHostLauncher точка расширения остается экспериментальной и может измениться в будущем выпуске.
Соответствие требованиям
Перед использованием расширения выполните следующие требования:
- Выберите целевую версию платформы Windows
10.0.19041.0или более позднюю для упакованного приложения WinUI 3. - Чтобы зарегистрировать макет выходных данных сборки без знака, включите режим разработчика или настройте загрузку неопубликованных данных.
- Для UWP используйте msBuild для настольных компьютеров из Visual Studio с рабочей нагрузкой UWP и необходимым пакетом SDK для Windows.
- Запустите тестовые хосты AppContainer из процесса контроллера без повышенных привилегий.
Общие сведения о активации пакета
Для упаковаемого приложения средство запуска:
- Находит
AppxManifest.xml, который описывает исполняемый файл теста. - Регистрирует структуру выходных данных сборки для текущего пользователя.
- Определяет AUMID выбранного приложения из манифеста.
- Активирует приложение и подключает его к контроллеру MTP.
Для packagedClassicApp и win32App узлов Windows предоставляет аргументы MTP через обычный массив аргументов процесса. Это поведение также относится к приложению packagedClassicApp , использующего AppContainer.
Для UWP windowsAppWindows предоставляет одну непрозрачную строку активации через LaunchActivatedEventArgs.Arguments. В OnLaunched вызовите PackagedAppExtensions.GetTestApplicationArguments перед созданием построителя MTP.
Подключить хост AppContainer
Маркер AppContainer включает в себя идентификатор безопасности ограниченного пакета. Именованный канал, разрешающий доступ только текущему пользователю, отклоняет процесс в AppContainer, даже если он принадлежит тому же вошедшему в систему пользователю.
В MTP 2.5 или более поздней версии средство запуска упаковаемых приложений получает точный идентификатор безопасности пакета выбранного приложения и просит MTP предоставить этот идентификатор безопасности минимальных прав клиента на контроллере и каналах расширений. Расширение не предоставляет ALL APPLICATION PACKAGES, снижает уровень целостности канала или требует исключения сетевой обратной связи.
Сайдкар передаёт метаданные контроллера через пакет LocalState. Он также копирует артефакты TRX, дампа, диагностики и повторных запусков из хранилища, принадлежащего пакету, в указанный каталог результатов после завершения работы изолированного узла.
Управление автоматической активацией
По умолчанию средство запуска включает себя только в том случае, если он находит манифест пакета, описывающий тестовое приложение. Неупакованное приложение WinUI 3 или обычное консольное тестовое приложение использует сценарий прямого запуска.
Используйте TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER, чтобы переопределить обнаружение пакетов:
| Value | Behavior |
|---|---|
auto или сбросить |
Включать только для упакованного макета. |
always |
Включите любой макет, включая свободный макет, который необходимо развернуть перед запуском. |
never |
Отключите средство запуска упаковаемых приложений. |
Используется TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION для переопределения авторизации package-SID:
| Value | Behavior |
|---|---|
auto или снять |
Авторизуйте идентификатор безопасности пакета, только если манифест объявляет приложение AppContainer. |
always |
Запросить авторизацию package-SID для любого упаковаемого макета. |
never |
Сохраните авторизацию канала только для текущего пользователя. |
Регистрация расширения вручную
Если вы не используете автоматическую регистрацию MSBuild, зарегистрируйте расширение в построителе MTP:
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddPackagedAppDeployment();
Не вызывайте AddPackagedAppDeployment , если приложение уже вызывает AddSelfRegisteredExtensions и ссылается на пакет. Запуск MTP может зарегистрировать только одно средство запуска хоста тестирования.