Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Dessa tillägg styr hur och var MTP distribuerar och startar testvärden. De använder den experimentella ITestHostLauncher tilläggspunkten för att kontrollera testvärdens distribution och start.
Tips/Råd
När du använder Microsoft. Testing.Platform.MSBuild, installera ett tilläggs NuGet-paket för att registrera tillägget automatiskt. MSTest-, NUnit- och xUnit-löpare inkluderar Microsoft.Testing.Platform.MSBuild transitivt. Om du inaktiverar den genererade startpunkten anropar du AddSelfRegisteredExtensions för att registrera de paket som MSBuild bidrar med.
Distribution av paketerade appar
Microsoft.Testing.Extensions.PackagedApp-tillägget registrerar en paketerad Windows-testvärd från layouten för dess byggutdata och aktiverar den med hjälp av programanvändarmodell-ID (AUMID).
Paketet introducerades i MTP 2.3. Från och med MTP 2.5 stöder det heltäckande paketerade fullständigt betrodda värdar och AppContainer-värdar, inklusive:
- Paketerade WinUI 3-appar med fullständigt förtroende.
- Moderna UWP-appar som använder
UseUwp. - Klassiska UWP-appar som riktar sig mot
uap10.0. - WinUI 3-värdar
packagedClassicAppsom ställer inTrustLevel="appContainer".
MSTest.Sdk 4.5 eller senare konfigurerar automatiskt det här tillägget och den nödvändiga sidecar-komponenten för appmodellen med fullständig behörighet. För programkonfiguration och körningskommandon, se Testa UWP- och WinUI 3-appar med MSTest och MTP.
Caution
Från och med MTP 2.4 följer Microsoft.Testing.Extensions.PackagedApp MTP:s versionsnumrering, och dess offentliga registrerings-API är inte längre experimentellt. Den generiska ITestHostLauncher tilläggspunkten är fortfarande experimentell och kan komma att ändras i en framtida version.
Uppfylla kraven
Uppfylla dessa krav innan du använder tillägget:
- Ange Windows-plattformsversionen
10.0.19041.0eller senare för en paketerad WinUI 3-app. - Om du vill registrera en osignerad layout för byggutdata aktiverar du utvecklarläge eller konfigurerar separat inläsning.
- För UWP använder du skrivbords-MSBuild från Visual Studio med UWP-arbetsbelastningen och nödvändig Windows SDK.
- Kör AppContainer-testvärdar från en styrprocess utan förhöjda rättigheter.
Förstå paketaktivering
För ett paketerat program, startprogrammet:
-
AppxManifest.xmlLetar upp det som beskriver det körbara testet. - Registrerar layouten för byggutdata för den aktuella användaren.
- Löser det valda manifestprogrammets AUMID.
- Aktiverar programmet och ansluter det till MTP-styrenheten.
För packagedClassicApp värdar och win32App värdar tillhandahåller Windows MTP-argument via den normala processargumentmatrisen. Det här beteendet gäller även för en packagedClassicApp som använder AppContainer.
För en UWP windowsApptillhandahåller Windows en ogenomskinlig aktiveringssträng via LaunchActivatedEventArgs.Arguments. I OnLaunched anropar du PackagedAppExtensions.GetTestApplicationArguments innan du skapar MTP-byggaren.
Anslut en AppContainer-värd
En AppContainer-token innehåller ett begränsat paket-SID. Ett namngivet pipe som endast tillåter den aktuella användaren avvisar AppContainer-processen även när den tillhör samma inloggade användare.
I MTP 2.5 eller senare fastställer startprogrammet för den paketerade appen den valda appens exakta paket-SID och ber MTP att ge detta SID minimala klientbehörigheter för styrenhets- och tilläggspiporna. Tillägget ger inte ALL APPLICATION PACKAGES, sänker inte pipe-integritetsnivån och kräver inte något undantag för nätverksloopback.
Sidovagnen överför kontrollantmetadata via paketet LocalState. Den kopierar dessutom TRX-, dump-, diagnostik- och återförsöksartefakter från paketets lagring till den angivna resultatkatalogen efter att den sandlådeisolerade värdprocessen har avslutats.
Kontrollera automatisk aktivering
Som standard aktiveras startprogrammet endast när det hittar ett paketmanifest som beskriver testprogrammet. En opaketerad WinUI 3-app eller en vanlig konsoltestapp förblir på direktstartsbanan.
Använd TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER för att åsidosätta paketidentifiering:
| Value | Behavior |
|---|---|
auto eller ta bort |
Aktivera endast för en paketerad layout. |
always |
Aktivera för alla layouter, inklusive en lös layout som du vill distribuera innan du startar. |
never |
Inaktivera startfunktionen för paketerade appar. |
Använd TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION för att åsidosätta package-SID-auktorisering:
| Value | Behavior |
|---|---|
auto eller ta bort |
Auktorisera endast paket-SID när manifestet deklarerar ett AppContainer-program. |
always |
Begär paket-SID-auktorisering för alla paketerade layouter. |
never |
Behåll pipauktoriseringen endast för aktuell användare. |
Registrera tillägget manuellt
Om du inte använder automatisk MSBuild-registrering registrerar du tillägget i MTP-byggaren:
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddPackagedAppDeployment();
Anropa AddPackagedAppDeployment inte om programmet redan anropar AddSelfRegisteredExtensions och refererar till paketet. En MTP-körning kan bara registrera en testvärdstartare.