Nasazení testovacího hostitele

Tato rozšíření řídí, jak a kde MTP nasazuje a spouští testovacího hostitele. Používají experimentální rozšiřující bod ITestHostLauncher k řízení nasazení a spouštění testovacího hostitele.

Tip

Pokud používáte Microsoft. Testing.Platform.MSBuild, nainstalujte balíček NuGet rozšíření pro automatickou registraci rozšíření. MsTest, NUnit a xUnit runners zahrnují Microsoft.Testing.Platform.MSBuild přechodně. Pokud zakážete generovaný vstupní bod, zavolejte AddSelfRegisteredExtensions, aby se zaregistrovaly balíčky, které přidává nástroj MSBuild.

Nasazení zabalené aplikace

Rozšíření Microsoft.Testing.Extensions.PackagedApp zaregistruje baleného testovacího hostitele systému Windows z rozložení výstupu sestavení a aktivuje ho pomocí identifikátoru modelu uživatele aplikace (AUMID).

Balíček byl zaveden v MTP 2.3. Od verze MTP 2.5 podporuje plně důvěryhodné hostitele v balíčku i hostitele AppContainer v celém rozsahu, včetně:

  • Aplikace WinUI 3 v balíčku s úplnou důvěrou
  • Moderní aplikace pro UPW, které používají UseUwp.
  • Klasické aplikace UWP cílené na uap10.0.
  • WinUI 3 packagedClassicApp hostitelé, kteří nastavily TrustLevel="appContainer".

MSTest.Sdk 4.5 nebo novější automaticky nakonfiguruje toto rozšíření a požadovaný sidecar modelu aplikace s plnou důvěrou. Informace o nastavení a spouštění aplikací naleznete v tématu Testování aplikací UPW a WinUI 3 pomocí MSTest a MTP.

Caution

Počínaje MTP 2.4 se Microsoft.Testing.Extensions.PackagedApp řídí verzí MTP a jeho rozhraní API pro veřejnou registraci už není experimentální. ITestHostLauncher Obecný bod rozšíření zůstává experimentální a v budoucí verzi se může změnit.

Splnění požadavků

Před použitím rozšíření splníte tyto požadavky:

  • Nastavte cílovou verzi platformy Windows na 10.0.19041.0 nebo novější pro balenou aplikaci WinUI 3.
  • Chcete-li zaregistrovat nepodepsané rozložení výstupu sestavení, povolte režim vývojáře nebo nakonfigurujte boční načítání.
  • Pro UWP použijte desktopový nástroj MSBuild z aplikace Visual Studio s úlohou UWP a požadovanou sadou Windows SDK.
  • Spouštět testovací hostitele AppContainer z procesu kontroleru bez zvýšených oprávnění.

Vysvětlení aktivace balíčku

Pro zabalenou aplikaci spouštěč:

  1. Vyhledá prvek AppxManifest.xml, který popisuje testovací spustitelný soubor.
  2. Zaregistruje rozložení build-output pro aktuálního uživatele.
  3. Vyřeší AUMID vybrané aplikace manifestu.
  4. Aktivuje aplikaci a připojí ji k kontroleru MTP.

Pro packagedClassicApp a win32App hostitele Windows poskytuje argumenty MTP prostřednictvím pole argumentů normálního procesu. Toto chování platí také pro packagedClassicApp aplikaci, která používá AppContainer.

Pro UWP windowsApp, Windows poskytuje jeden neprůhledný aktivační řetězec prostřednictvím LaunchActivatedEventArgs.Arguments. V OnLaunched zavolejte PackagedAppExtensions.GetTestApplicationArguments před vytvořením sestavovače MTP.

Připojení hostitele AppContainer

Token AppContainer obsahuje omezený identifikátor SID balíčku. Pojmenovaný kanál, který povoluje přístup pouze aktuálně přihlášenému uživateli, odmítá proces AppContainer, i když patří témuž přihlášenému uživateli.

V MTP 2.5 a novějších verzích spouštěč balíčkových aplikací odvodí přesný identifikátor SID balíčku vybrané aplikace a požádá MTP, aby tomuto SID udělil minimální klientská práva k rourám řadiče a rozšíření. Rozšíření neuděluje ALL APPLICATION PACKAGES, nesnižuje úroveň integrity komunikačního kanálu ani nevyžaduje výjimku pro síťový loopback.

Sidecar přenáší metadata kontroleru pomocí balíčku LocalState. Také zkopíruje artefakty TRX, dump, diagnostiky a opakovaných pokusů z úložiště patřícího balíčku do požadovaného adresáře s výsledky poté, co hostitel běžící v sandboxu skončí.

Řízení automatické aktivace

Ve výchozím nastavení se spouštěč povolí pouze v případě, že najde manifest balíčku, který popisuje testovací aplikaci. Nebalená aplikace WinUI 3 nebo běžná konzolová testovací aplikace zůstává v režimu přímého spuštění.

Pomocí TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER přepíšete rozpoznávání balíčků:

Value Behavior
auto nebo nenastaveno Povolte pouze pro balíčkové rozložení.
always Povolte pro všechna rozložení, včetně volného rozložení, které chcete nasadit před spuštěním.
never Zakažte spouštěč balíčkovaných aplikací.

Použijte TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION k přepsání autorizace SID balíčku:

Value Behavior
auto nebo zrušit nastavení Autorizuje identifikátor SID balíčku pouze v případech, kdy manifest deklaruje aplikaci AppContainer.
always Požádejte o autorizaci balíčku SID pro jakékoli zabalené rozložení.
never Zachovejte oprávnění roury omezené pouze na aktuálního uživatele.

Ruční registrace rozšíření

Pokud nepoužíváte automatickou registraci nástroje MSBuild, zaregistrujte rozšíření v tvůrci MTP:

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddPackagedAppDeployment();

Nevolejte AddPackagedAppDeployment, pokud aplikace již volá AddSelfRegisteredExtensions a odkazuje na balíček. V rámci jednoho běhu MTP lze zaregistrovat pouze jeden spouštěč hostitele testu.