06/10/2026 · VietTechies · Biên tập

Microsoft đã nâng cấp MSTest lên phiên bản 4.5 và Microsoft.Testing.Platform lên phiên bản 2.5, mang lại mô hình kiểm thử giao diện người dùng (UI) thống nhất cho các ứng dụng Universal Windows Platform (UWP) và WinUI 3. Bản cập nhật này cho phép quá trình khởi tạo bài kiểm thử, thực thi mã bất đồng bộ và dọn dẹp dữ liệu diễn ra trực tiếp trên luồng UI gốc của ứng dụng, thay vì thông qua luồng single-threaded apartment thông thường.
Kiến trúc thực thi sidecar thống nhất
MSTest.Sdk chịu trách nhiệm điều phối việc thực thi bài kiểm thử trên nhiều môi trường khác nhau, bao gồm WinUI 3 không đóng gói, ứng dụng đóng gói, UWP hiện đại, UWP truyền thống và các máy chủ AppContainer. Thay vì phụ thuộc vào các thành phần cũ như vstest.console, Microsoft.NET.Test.Sdk hay UwpTestHostRuntimeProvider, MSTest.Sdk sử dụng một bộ điều khiển sidecar có độ tin cậy cao (full-trust). Đối với dự án WinUI 3 không đóng gói, công cụ này sẽ khởi chạy trực tiếp apphost. Với phần mềm đóng gói, bộ điều khiển sidecar đăng ký bố cục đầu ra và kích hoạt ứng dụng chủ thông qua Application User Model ID nhờ extension Microsoft.Testing.Extensions.PackagedApp, đồng thời xử lý đối số dòng lệnh, hủy bài kiểm thử, thử lại và lập báo cáo.
Tích hợp UI Dispatcher
Khung làm việc này sử dụng thuộc tính UITestMethod để cấp quyền truy cập luồng UI trong suốt toàn bộ quá trình thiết lập, thực thi logic kiểm thử và dọn dẹp. Trong các ứng dụng kiểm thử WinUI 3, các lập trình viên sẽ gán DispatcherQueue của cửa sổ chính bên trong điểm truy cập OnLaunched trước khi chuyển đối số tiến trình sang trình hỗ trợ thực thi Microsoft.Testing.Platform được tạo tự động. Phương pháp này thay thế cho luồng công việc STATestMethod trước đây, vốn chỉ tạo luồng single-threaded apartment mà không dựng bộ điều phối WinUI gốc.
Yêu cầu môi trường và thực thi CI
Khởi chạy các máy chủ kiểm thử dạng đóng gói hoặc AppContainer đòi hỏi cấu hình hệ thống cụ thể. Việc đăng ký bố cục bản dựng đầu ra chưa ký số phụ thuộc vào Chế độ nhà phát triển (Developer Mode) hoặc chính sách sideloading đang hoạt động trên máy trạm và các agent tích hợp liên tục (CI). Bài kiểm thử AppContainer và các bản dựng UWP chạy trong môi trường Developer PowerShell không nâng quyền quản trị bằng cách dùng mục tiêu MSBuild InvokeTestingPlatform, trong khi các dự án WinUI 3 không đóng gói cũng có thể thực thi trực tiếp qua các lệnh dotnet run hoặc dotnet test tiêu chuẩn.
Ảnh minh họa do AI tạo, không phải ảnh tư liệu.
