用途:为 .NET MAUI 应用提供端到端测试方案,结合 Appium 2.x 做 UI 自动化,结合 XHarness 1.x 在设备与模拟器上执行测试,并验证平台特有行为。
主要能力:支持 Android(UIAutomator2)、iOS(XCUITest)和 Windows 的 Appium 驱动初始化;通过 MAUI 的 AutomationId 映射到各平台原生无障碍标识进行元素定位;提供页面对象模型(Page Object Model)封装;按平台条件跳过测试(xUnit v3 的 Assert.SkipWhen 与 [Trait]);屏幕方向与尺寸相关测试;XHarness 命令行执行 Android/iOS 测试并收集结果。
必要用法:需先通过 dotnet-add-testing 技能搭建 MAUI 测试项目,安装 Appium 服务器(npm install -g appium),Android 需 Android SDK 与模拟器,iOS 需 macOS 上的 Xcode 与模拟器,Windows 需 WinAppDriver。测试项目引用 Appium.WebDriver 5.*、xunit.v3 3.2.2、xunit.runner.visualstudio 3.1.5。XHarness 安装命令:dotnet tool install --global Microsoft.DotNet.XHarness.CLI。运行示例:xharness android test --app bin/Release/net8.0-android/com.myapp-Signed.apk --package-name com.myapp --instrumentation devicerunner.AndroidInstrumentation --output-directory test-results/android;xharness apple test --app bin/Release/net8.0-ios/MyApp.app --target ios-simulator-64 --output-directory test-results/ios。设备内运行 xUnit 需引用 Microsoft.DotNet.XHarness.TestRunners.Xunit 并在 MauiProgram 中调用 UseVisualRunner()。
适用场景:移动与桌面 MAUI 应用的 UI 回归、平台差异验证、真机/模拟器集成测试。
限制:不覆盖共享 UI 测试模式(见 dotnet-ui-testing-core)、浏览器测试(见 dotnet-playwright)和测试项目脚手架(见 dotnet-add-testing)。iOS 测试仅限 macOS。应使用显式等待而非隐式等待或 Thread.Sleep,避免硬编码模拟器名称,并确保 Appium 服务器由 fixture 或 CI 服务管理。版本假设为 .NET 8.0+、Appium 2.x、XHarness 1.x。