Konak dağıtımını test edin

Bu uzantılar MTP'nin test ana bilgisayarını nasıl ve nerede dağıtıp başlattığını denetler. Test ana sisteminin dağıtımını ve başlatılmasını denetlemek için deneysel ITestHostLauncher uzantı noktasını kullanırlar.

İpucu

Microsoft.Testing.Platform.MSBuild kullandığınızda, bir uzantının NuGet paketini yükleyerek uzantıyı otomatik olarak kaydettirin. MSTest, NUnit ve xUnit çalıştırıcıları Microsoft.Testing.Platform.MSBuild öğesini dolaylı olarak içerir. Oluşturulan giriş noktasını devre dışı bırakırsanız, MSBuild’in eklediği paketleri kaydetmek için AddSelfRegisteredExtensions çağrısını yapın.

Paketlenmiş uygulama dağıtımı

Microsoft. Testing.Extensions.PackagedApp uzantısı, derleme çıktı düzeninden paketlenmiş Windows test ana bilgisayarını kaydeder ve Uygulama Kullanıcı Modeli Kimliği (AUMID) ile etkinleştirir.

Paket MTP 2.3'te kullanıma sunulmuştur. MTP 2.5'den başlayarak paketlenmiş tam güveni destekler ve AppContainer konakları uçtan uca şunları içerir:

  • Paketlenmiş tam güven WinUI 3 uygulamaları.
  • UseUwp kullanan modern UWP uygulamaları.
  • uap10.0 hedefleyen klasik UWP uygulamaları.
  • ayarlayan TrustLevel="appContainer"WinUI 3 packagedClassicApp konakları.

MSTest.Sdk 4.5 veya üzeri, bu uzantıyı ve gerekli tam güven uygulama modeli sepetini otomatik olarak yapılandırıyor. Uygulama kurulumu ve çalıştırma komutları için bkz . MSTest ve MTP ile UWP ve WinUI 3 uygulamalarını test etme.

Caution

MTP 2.4'den Microsoft.Testing.Extensions.PackagedApp başlayarak, MTP yayın sürümünü izler ve genel kayıt API'si artık deneysel değildir. Genel ITestHostLauncher uzantı noktası deneysel olmaya devam eder ve gelecekteki bir sürümde değişebilir.

Gereksinimleri karşılama

Uzantıyı kullanmadan önce şu gereksinimleri karşılayın:

  • WinUI 3 paketli bir uygulama için hedef Windows platform sürümü 10.0.19041.0 veya üzeri.
  • İmzasız bir derleme-çıkış düzenini kaydetmek için Geliştirici Modu'nu etkinleştirin veya dışarıdan yüklemeyi yapılandırın.
  • UWP için, UWP iş yükü ve gerekli Windows SDK'sı ile Visual Studio desktop MSBuild kullanın.
  • AppContainer test konaklarını yükseltilmiş olmayan bir denetleyici işleminden çalıştırın.

Paket etkinleştirmeyi anlama

Paketlenmiş bir uygulama için başlatıcı:

  1. test yürütülebilir dosyasını tanımlayan AppxManifest.xml öğesini bulur.
  2. Geçerli kullanıcı için derleme-çıkış düzenini kaydeder.
  3. Seçili bildirim uygulamasının AUMID'sini çözümler.
  4. Uygulamayı etkinleştirir ve MTP denetleyicisine bağlar.

win32App ve packagedClassicApp konakları için Windows, MTP argümanlarını normal işlem argümanı dizisi üzerinden sağlar. Bu davranış, AppContainer kullanan bir packagedClassicApp için de geçerlidir.

Bir UWP windowsApp için Windows, LaunchActivatedEventArgs.Arguments aracılığıyla bir opak etkinleştirme dizesi sağlar. OnLaunched içinde, MTP oluşturucusunu oluşturmadan önce PackagedAppExtensions.GetTestApplicationArguments öğesini çağırın.

Bir AppContainer ana bilgisayarını bağlama

AppContainer belirteci kısıtlanmış paket SID'sini içerir. Yalnızca geçerli kullanıcıyı yetkilendiren adlandırılmış bir kanal, aynı oturum açmış kullanıcıya ait olsa bile AppContainer işlemini reddeder.

MTP 2.5 veya sonraki sürümlerinde paketlenmiş uygulama başlatıcısı seçilen uygulamanın tam paket SID'sini türetir ve MTP'den bu SID'ye denetleyici ve uzantı kanalları üzerinde en düşük istemci haklarını vermesini ister. Uzantı, ALL APPLICATION PACKAGES vermez, borunun bütünlük düzeyini düşürmez veya bir ağ geri döngüsü muafiyeti gerektirmez.

Sidecar, denetleyici meta verilerini LocalState paketi aracılığıyla aktarır. Ayrıca, korumalı ana bilgisayar sonlandıktan sonra TRX, döküm dosyaları, tanılama ve yeniden deneme dosyalarını paketin depolama alanından istenen sonuç dizinine kopyalar.

Otomatik etkinleştirmeyi denetleme

Varsayılan olarak, başlatıcı yalnızca test uygulamasını açıklayan bir paket bildirimi bulduğunda kendisini etkinleştirir. Paketlenmemiş bir WinUI 3 uygulaması veya normal konsol testi uygulaması doğrudan başlangıç yolunda kalır.

Paket algılamayı geçersiz kılmak için kullanın TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER :

Value Behavior
auto veya ayarı kaldır Yalnızca paketlenmiş düzen için etkinleştirin.
always Başlatmadan önce dağıtmak istediğiniz gevşek düzen de dahil olmak üzere herhangi bir düzen için etkinleştirin.
never Paketlenmiş uygulama başlatıcıyı devre dışı bırakın.

Package-SID yetkilendirmesini geçersiz kılmak için kullanın TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION :

Value Behavior
auto veya ayarlanmamış Paket SID'sini yalnızca bildirim bir AppContainer uygulaması bildirdiğinde yetkilendirin.
always Paketlenmiş herhangi bir düzen için paket-SID yetkilendirmesi isteyin.
never Yalnızca geçerli kullanıcıya yönelik kanal yetkilendirmesini koruyun.

Uzantıyı el ile kaydetme

Otomatik MSBuild kaydını kullanmıyorsanız uzantıyı MTP oluşturucunuza kaydedin:

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

Uygulama zaten AddSelfRegisteredExtensions çağırıyor ve pakete başvuruyorsa AddPackagedAppDeployment çağırmayın. Bir MTP çalıştırma işlemi yalnızca bir test ana bilgisayarı başlatıcısı kaydedebilir.