Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ekstensi ini mengontrol bagaimana dan di mana MTP menyebarkan dan memulai host pengujian. Mereka menggunakan titik ekstensi eksperimental ITestHostLauncher untuk mengontrol penyebaran dan inisialisasi host pengujian.
Tip
Saat Anda menggunakan Microsoft. Testing.Platform.MSBuild, instal paket NuGet ekstensi untuk mendaftarkan ekstensi secara otomatis. Runner MSTest, NUnit, dan xUnit menyertakan Microsoft.Testing.Platform.MSBuild secara transitif. Jika Anda menonaktifkan titik masuk yang dihasilkan, panggil AddSelfRegisteredExtensions untuk mendaftarkan paket yang dikontribusikan MSBuild.
Penerapan aplikasi yang dipaketkan
Ekstensi Microsoft.Testing.Extensions.PackagedApp mendaftarkan host pengujian Windows terpaket dari tata letak output build-nya dan mengaktifkannya menggunakan ID Model Pengguna Aplikasi (AUMID).
Paket ini diperkenalkan dalam MTP 2.3. Dimulai dengan MTP 2.5, ini mendukung host kepercayaan penuh dan AppContainer yang dipaketkan secara menyeluruh, termasuk:
- Aplikasi WinUI 3 full-trust yang dikemas.
- Aplikasi UWP modern yang menggunakan
UseUwp. - Aplikasi UWP klasik yang menargetkan
uap10.0. - host WinUI 3
packagedClassicAppyang menetapkanTrustLevel="appContainer".
MSTest.Sdk 4.5 atau yang lebih baru secara otomatis mengonfigurasi ekstensi ini dan sidecar model aplikasi full-trust yang diperlukan. Untuk perintah penyiapan dan eksekusi aplikasi, lihat Menguji aplikasi UWP dan WinUI 3 dengan MSTest dan MTP.
Caution
Dimulai dengan MTP 2.4, Microsoft.Testing.Extensions.PackagedApp mengikuti versi rilis MTP, dan API pendaftaran publiknya tidak lagi bereksperimen. Titik ekstensi generik ITestHostLauncher tetap eksperimental dan mungkin berubah dalam rilis mendatang.
Memenuhi persyaratan
Penuhi persyaratan ini sebelum Anda menggunakan ekstensi:
- Targetkan versi
10.0.19041.0platform Windows atau yang lebih baru untuk aplikasi paket WinUI 3. - Untuk mendaftarkan tata letak build-output yang tidak ditandatangani, aktifkan Mode Pengembang atau konfigurasikan sideloading.
- Untuk UWP, gunakan MSBuild desktop dari Visual Studio dengan beban kerja UWP dan Windows SDK yang diperlukan.
- Jalankan host pengujian AppContainer dari proses pengontrol yang tidak ditingkatkan.
Memahami aktivasi paket
Untuk aplikasi paket, peluncur:
- Menemukan
AppxManifest.xmlyang mendeskripsikan file eksekusi pengujian. - Mendaftarkan tata letak keluaran build untuk pengguna saat ini.
- Menentukan AUMID dari aplikasi manifes yang dipilih.
- Mengaktifkan aplikasi dan menghubungkannya ke pengontrol MTP.
Untuk host packagedClassicApp dan win32App, Windows menyediakan argumen MTP melalui array argumen proses normal. Perilaku ini juga berlaku untuk yang packagedClassicApp menggunakan AppContainer.
Untuk UWP windowsApp, Windows menyediakan satu string aktivasi buram melalui LaunchActivatedEventArgs.Arguments. Dalam OnLaunched, panggil PackagedAppExtensions.GetTestApplicationArguments sebelum membuat builder MTP.
Menyambungkan host AppContainer
Token AppContainer menyertakan SID paket terbatas. Pipa bernama yang hanya mengizinkan pengguna saat ini menolak proses AppContainer bahkan ketika proses tersebut milik pengguna yang sama yang sedang masuk.
Dalam MTP 2.5 atau versi yang lebih baru, peluncur aplikasi terpaket menentukan SID paket yang tepat dari aplikasi yang dipilih dan meminta MTP untuk memberikan kepada SID tersebut hak klien minimum pada saluran pengontrol dan ekstensi. Ekstensi tidak memberikan ALL APPLICATION PACKAGES, menurunkan tingkat integritas pipa, atau memerlukan pengecualian loopback jaringan.
Sidecar mentransfer metadata pengendali melalui paket LocalState. Ini juga menyalin artefak TRX, dump, diagnostik, dan pengulangan dari penyimpanan milik paket ke direktori hasil yang diminta setelah host dalam sandbox berhenti.
Mengontrol aktivasi otomatis
Secara default, peluncur mengaktifkan dirinya sendiri hanya ketika menemukan manifes paket yang menjelaskan aplikasi pengujian. Aplikasi WinUI 3 yang tidak dikemas atau aplikasi uji konsol biasa tetap berada di jalur mulai langsung.
Gunakan TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER untuk mengambil alih deteksi paket:
| Nilai | Behavior |
|---|---|
auto atau tidak disetel |
Aktifkan hanya untuk tata letak terpaket. |
always |
Aktifkan untuk semua tata letak, termasuk tata letak bebas yang ingin Anda terapkan sebelum memulai. |
never |
Nonaktifkan peluncur aplikasi paket. |
Gunakan TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION untuk mengambil alih otorisasi paket-SID:
| Nilai | Behavior |
|---|---|
auto atau tidak disetel |
Otorisasi paket SID hanya ketika manifes mendeklarasikan aplikasi AppContainer. |
always |
Minta otorisasi paket-SID untuk tata letak paket apa pun. |
never |
Pertahankan otorisasi pipe yang hanya untuk pengguna saat ini. |
Mendaftarkan ekstensi secara manual
Jika Anda tidak menggunakan pendaftaran MSBuild otomatis, daftarkan ekstensi di penyusun MTP Anda:
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddPackagedAppDeployment();
Jangan panggil AddPackagedAppDeployment jika aplikasi sudah memanggil AddSelfRegisteredExtensions dan mereferensikan paket. Proses MTP hanya dapat mendaftarkan satu peluncur host uji.