SuperAPI AI 工具集

dotnet-ui-testing-core

测试与质量

查看项目

更新于 10-16 02:33

技能介绍

用途:为 .NET 各 UI 框架(Blazor、MAUI、Uno Platform)提供通用的 UI 测试核心模式,基线为 .NET 8.0+,框架专属细节交由对应技能处理。

主要能力:一是页面对象模型(POM),用类封装页面结构与交互,UI 变化时只需改页面对象;建议导航动作返回下一个页面对象、不暴露原始选择器、断言留在测试中、用可复用组件组合页面对象。二是测试选择器策略,可靠性从高到低为 data-testid、无障碍角色加名称、标签文本、占位符、CSS 类、XPath/DOM 结构;并给出 Blazor、MAUI XAML、Uno Platform XAML 添加测试 ID 的写法。三是异步等待策略,按元素是否已在 DOM、是否可见可操作、是否由网络加载选择等待方式,使用框架原生等待而非硬编码延迟。四是无障碍测试,可用 Deque.AxeCore.Playwright 运行 axe 检查,覆盖颜色对比、键盘导航、ARIA 标签、焦点管理、屏幕阅读器文本等。

使用方式:需先通过 dotnet-add-testing 搭建测试项目,并参考 dotnet-testing-strategy 判断何时适合做 UI 测试。示例使用 Playwright 的 IPage、bUnit 的组件渲染与 Appium 驱动。

适用场景:需要跨框架复用的 UI 测试结构设计、选择器与等待策略制定、无障碍自动化检查。

限制:不涵盖 Blazor 组件测试(bUnit)、MAUI 的 Appium/XHarness、Uno WASM 测试、浏览器自动化细节与测试项目脚手架,这些分别见对应技能。添加 data-testid 需团队约定;避免 WaitForTimeout、Thread.Sleep、Task.Delay 等硬编码等待;列表断言前需先等待加载;页面对象不宜深层嵌套。