Testa värddistribution

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 packagedClassicApp som ställer in TrustLevel="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.0 eller 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:

  1. AppxManifest.xml Letar upp det som beskriver det körbara testet.
  2. Registrerar layouten för byggutdata för den aktuella användaren.
  3. Löser det valda manifestprogrammets AUMID.
  4. 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.