用途:为 Uno Platform 应用在不同目标头(WASM、桌面、移动)上提供测试方案,重点是用 Playwright 对 WASM 端做浏览器自动化,以及各平台的测试模式与测试基础设施。版本假设:.NET 8.0+、Uno Platform 5.x+、WASM 测试用 Playwright 1.40+。Uno 采用单项目、多目标框架结构。
主要能力:按头列测试策略——WASM 用 Playwright(中速、高保真),桌面用 Appium/WinAppDriver,iOS 用 Appium+XCUITest,Android 用 Appium+UIAutomator2,共享逻辑用 xUnit 单元测试(快)。推荐先用单元测试覆盖共享业务逻辑,再以 WASM+Playwright 做 UI 验证,仅对头间差异行为追加平台测试。示例覆盖测试夹具启动/关闭 WASM 服务、等待 Uno 应用就绪、导航与表单交互测试,以及用 AutomationProperties.AutomationId 实现跨平台选择器。
使用方式:为可测控件设置 AutomationProperties.AutomationId,WASM 端渲染为 data-testid,Android 映射 content-desc,iOS 映射 accessibilityIdentifier,Windows 映射 AutomationId。WASM 夹具中通过 dotnet run --project src/MyApp/MyApp.Wasm.csproj --no-build 启动应用并轮询就绪。共享测试逻辑用抽象基类,各平台子类提供驱动。
限制与注意:Uno WASM 启动需等待运行时初始化,不能用不稳定的 CSS 类选择器;运行 Playwright 前需先构建 WASM 头;移动端专有能力(文件系统、推送、生物识别、NFC)不能在 WASM 测试;不同平台需各自 SDK 与独立 CI 任务。共享 UI 测试模式、Playwright 基础、测试项目脚手架分别由 dotnet-ui-testing-core、dotnet-playwright、dotnet-add-testing 覆盖。收费、价格及官方文档中的其他细节暂未提供。