Gazdagép üzembe helyezésének tesztelése

Ezek a bővítmények szabályozzák, hogy az MTP hogyan és hol helyezi üzembe és indítja el a teszt gazdagépet. A kísérleti ITestHostLauncher bővítménypontot használják a teszt gazdagép üzembe helyezésének és elindításának szabályozására.

Tip

Amikor a Microsoft.Testing.Platform.MSBuild csomagot használja, telepítse a bővítmény NuGet-csomagját a bővítmény automatikus regisztrálásához. Az MSTest, az NUnit és az xUnit tesztfuttatók tranzitívan tartalmazzák a(z) Microsoft.Testing.Platform.MSBuild elemet. Ha letiltja a generált belépési pontot, az MSBuild által hozzáadott csomagok regisztrálásához hívja meg a(z) AddSelfRegisteredExtensions elemet.

Csomagolt alkalmazás üzembe helyezése

A Microsoft.Testing.Extensions.PackagedApp bővítmény a buildkimenetének elrendezéséből regisztrál egy csomagolt Windows-tesztgazdát, majd az Application User Model ID (AUMID) alapján aktiválja azt.

A csomag az MTP 2.3-ban lett bevezetve. Az MTP 2.5-től kezdődően az alábbiakat támogatja végponttól végpontig, beleértve a csomagolt, teljes megbízhatósági szintű és az AppContainer-gazdafolyamatokat:

  • Csomagolt teljes megbízhatóságú WinUI 3-alkalmazások.
  • Modern UWP-alkalmazások, amelyek használják UseUwp.
  • A uap10.0-t megcélzó klasszikus UWP-alkalmazások.
  • WinUI 3 TrustLevel="appContainer" gazdagépek, amelyek beállítják a(z) packagedClassicApp elemet.

Az MSTest.Sdk 4.5-ös vagy újabb verziója automatikusan konfigurálja ezt a bővítményt, valamint a szükséges, teljes megbízhatósági szintű alkalmazásmodellhez tartozó kísérőfolyamatot. Az alkalmazásbeállítási és -futtatási parancsokért lásd: UWP és WinUI 3-alkalmazások tesztelése MSTest és MTP használatával.

Caution

Az MTP 2.4-től Microsoft.Testing.Extensions.PackagedApp kezdve az MTP kiadási verzióját követi, és a nyilvános regisztrációs API már nem kísérleti. Az általános ITestHostLauncher bővítménypont kísérleti jellegű marad, és egy későbbi kiadásban változhat.

A követelményeknek való megfelelés

A bővítmény használata előtt az alábbi követelményeknek kell megfelelnie:

  • A WinUI 3-ba csomagolt alkalmazások Windows platformverziójának 10.0.19041.0 vagy újabb verziójának megcélzása.
  • Ha nem aláírt buildkimeneti elrendezést szeretne regisztrálni, engedélyezze a fejlesztői módot, vagy konfigurálja a mellékbetöltést.
  • UWP esetén használja a Visual Studio asztali MSBuildjét az UWP-workloaddal és a szükséges Windows SDK-val.
  • Futtassa az AppContainer tesztgazdafolyamatokat egy nem emelt jogosultságú vezérlőfolyamatból.

A csomagaktiválás ismertetése

Csomagolt alkalmazások esetén a indító:

  1. Megkeresi a tesztfuttatható fájlt leíró AppxManifest.xml elemet.
  2. Regisztrálja az aktuális felhasználó buildkimeneti elrendezését.
  3. Feloldja a kijelölt jegyzékalkalmazás AUMID azonosítóját.
  4. Aktiválja az alkalmazást, és csatlakoztatja az MTP-vezérlőhöz.

A win32App és packagedClassicApp gazdagépeken a Windows az MTP-argumentumokat a szokásos folyamatargumentum-tömbön keresztül adja át. Ez a viselkedés az AppContainert használó alkalmazásokra packagedClassicApp is vonatkozik.

Egy UWP windowsApp esetén a Windows a LaunchActivatedEventArgs.Arguments révén egy átlátszatlan aktiválási karakterláncot biztosít. A(z) OnLaunched elemben hívd meg a(z) PackagedAppExtensions.GetTestApplicationArguments elemet, mielőtt létrehozod az MTP-buildet.

AppContainer-gazdagép csatlakoztatása

Az AppContainer-jogkivonat egy korlátozott csomaghoz tartozó SID-et tartalmaz. Egy nevesített cső, amely csak az aktuális felhasználót engedélyezi, akkor is elutasítja az AppContainer-folyamatot, ha ugyanahhoz a bejelentkezett felhasználóhoz tartozik.

Az MTP 2.5-ös vagy újabb verzióiban a csomagolt alkalmazásindító levezeti a kiválasztott alkalmazás csomagazonosítóját, és megkéri az MTP-t, hogy biztosítsa az adott SID számára a minimális ügyféljogokat a vezérlőn és a bővítménycsöveken. A bővítmény nem ad meg ALL APPLICATION PACKAGES elemet, nem csökkenti a folyamatcsatorna integritási szintjét, és nem igényel hálózati loopback alóli mentességet.

Az oldalkocsi a csomagon LocalStatekeresztül továbbítja a vezérlő metaadatait. Emellett a TRX-, memóriakép-, diagnosztikai és újrapróbálási fájlokat is átmásolja a csomaghoz tartozó tárolóból a megadott eredménykönyvtárba, miután a homokozóba zárt gazdagép kilép.

Automatikus aktiválás szabályozása

Alapértelmezés szerint a indító csak akkor engedélyezi magát, ha a tesztalkalmazást leíró csomagjegyzéket talál. A kicsomagolt WinUI 3-alkalmazások vagy a szokásos konzoltesztelési alkalmazások a közvetlen indítási útvonalon maradnak.

A csomagészlelés felülbírálásához használható TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER :

Érték Viselkedés
auto vagy a beállítás törlése Csak csomagolt elrendezés esetén legyen engedélyezve.
always Bármilyen elrendezéshez engedélyezhető, beleértve az indítás előtt üzembe helyezni kívánt laza elrendezést is.
never Tiltsa le a csomagolt alkalmazásindítót.

A csomag-SID-hitelesítés felülbírálásához használható TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION :

Érték Viselkedés
auto vagy nincs beállítva Csak akkor engedélyezze a csomag SID-címét, ha a jegyzék egy AppContainer-alkalmazást deklarál.
always Csomag-SID-engedélyezés kérése bármilyen csomagolt elrendezéshez.
never Tartsa meg a csak az aktuális felhasználóra érvényes csőengedélyt.

A bővítmény manuális regisztrálása

Ha nem használ automatikus MSBuild-regisztrációt, regisztrálja a bővítményt az MTP-szerkesztőben:

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

Ne hívjon AddPackagedAppDeployment , ha az alkalmazás már meghívja AddSelfRegisteredExtensions és hivatkozik a csomagra. Egy MTP-futtatás legfeljebb egy tesztgazda-indítót regisztrálhat.