Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
packagedClassicApphostitelé, kteří nastavilyTrustLevel="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.0nebo 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ěč:
- Vyhledá prvek
AppxManifest.xml, který popisuje testovací spustitelný soubor. - Zaregistruje rozložení build-output pro aktuálního uživatele.
- Vyřeší AUMID vybrané aplikace manifestu.
- 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.