Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Estas extensões controlam como e onde o MTP é implementado e inicia o host de teste. Utilizam o ponto de extensão experimental ITestHostLauncher para controlar a implementação e arranque do host de teste.
Gorjeta
Quando utiliza Microsoft.Testing.Platform.MSBuild, instale o pacote NuGet da extensão para a registar automaticamente. Os runners MSTest, NUnit e xUnit incluem Microsoft.Testing.Platform.MSBuild de forma transitiva. Se desativar o ponto de entrada gerado, chame AddSelfRegisteredExtensions para registar os pacotes com que o MSBuild contribui.
Implementação de aplicações empacotadas
A extensão Microsoft. Testing.Extensions.PackagedApp regista um host de teste Windows empacotado a partir do seu layout de build-output e ativa-o pelo ID do Modelo de Utilizador da Aplicação (AUMID).
O pacote foi introduzido no MTP 2.3. A partir do MTP 2.5, suporta hosts de confiança total e AppContainer empacotados de ponta a ponta, incluindo:
- Aplicações WinUI 3 empacotadas com confiança total.
- Aplicações UWP modernas que usam
UseUwp. - Aplicações UWP clássicas que visam
uap10.0. - O WinUI 3
packagedClassicApphospeda que defineTrustLevel="appContainer".
O MSTest.Sdk 4.5 ou posterior configura automaticamente esta extensão e o sidecar de modelo de aplicação de confiança total necessário. Para comandos de configuração e execução de aplicações, consulte Testar aplicações UWP e WinUI 3 com MSTest e MTP.
Atenção
A partir do MTP 2.4, Microsoft.Testing.Extensions.PackagedApp segue a versão de lançamento do MTP, e a sua API de registo público deixa de ser experimental. O ponto de extensão genérico ITestHostLauncher mantém-se experimental e pode mudar numa versão futura.
Cumprir os requisitos
Cumpra estes requisitos antes de usar a extensão:
- Defina como destino a versão
10.0.19041.0ou posterior da plataforma Windows para uma aplicação empacotada em WinUI 3. - Para registar um esquema de saída da compilação não assinado, ative o Modo de Programador ou configure o carregamento lateral.
- Para UWP, use o MSBuild para ambiente de trabalho do Visual Studio com a carga de trabalho do UWP e o SDK do Windows necessário.
- Execute os alojamentos de teste AppContainer a partir de um processo controlador não elevado.
Compreender a ativação do pacote
Para uma aplicação empacotada, o iniciador:
- Localiza o
AppxManifest.xmlque descreve o executável de teste. - Regista o esquema de saída da compilação para o utilizador atual.
- Resolve o AUMID da aplicação de manifesto selecionada.
- Ativa a aplicação e liga-a ao controlador MTP.
Para os anfitriões packagedClassicApp e win32App, o Windows fornece os argumentos MTP através do vetor normal de argumentos do processo. Este comportamento aplica-se também a um packagedClassicApp que usa AppContainer.
Para um UWPwindowsApp, o Windows fornece uma cadeia de ativação opaca através de LaunchActivatedEventArgs.Arguments. Em OnLaunched, chame PackagedAppExtensions.GetTestApplicationArguments antes de criar o construtor MTP.
Ligue um anfitrião AppContainer
Um token AppContainer inclui um SID de pacote restrito. Uma canalização com nome que autoriza apenas o utilizador atual rejeita o processo de AppContainer, mesmo quando este pertence ao mesmo utilizador com sessão iniciada.
No MTP 2.5 ou posterior, o lançador de aplicações empacotadas deriva o SID exato do pacote da aplicação selecionada e pede ao MTP que conceda a esse SID os direitos mínimos do cliente sobre o controlador e os tubos de extensão. A extensão não concede ALL APPLICATION PACKAGES, não reduz o nível de integridade do pipe, nem exige uma isenção de loopback da rede.
O sidecar transfere metadados do controlador através do pacote LocalState. Também copia artefactos TRX, dump, diagnóstico e retry do armazenamento pertencente ao pacote para o diretório de resultados solicitados após a saída do host sandbox.
Controla a ativação automática
Por defeito, o launcher só se ativa quando encontra um manifesto de pacote que descreve a aplicação de teste. Uma aplicação WinUI 3 não embalada ou uma aplicação de teste comum para consola mantém-se no caminho de início direto.
Use TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER para substituir a deteção de pacotes:
| Value | Comportamento |
|---|---|
auto ou não definido |
Ative apenas para um layout incluído num pacote. |
always |
Ativa qualquer layout, incluindo um layout solto que queiras implementar antes de arrancar. |
never |
Desative o iniciador de aplicações empacotadas. |
Utilize TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION para substituir a autorização do SID do pacote:
| Value | Comportamento |
|---|---|
auto ou não definido |
Autorize o SID do pacote apenas se o manifesto declarar uma aplicação AppContainer. |
always |
Solicite autorização do pacote SID para qualquer layout empacotado. |
never |
Mantenha a autorização do pipe apenas para o utilizador atual. |
Registe a extensão manualmente
Se não usar o registo automático do MSBuild, registe-se a extensão no seu construtor MTP:
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddPackagedAppDeployment();
Não chame AddPackagedAppDeployment se a aplicação já chamar AddSelfRegisteredExtensions e fizer referência ao pacote. Uma execução MTP só pode registar um lançador de host de teste.