用途:为 .NET MAUI 仓库中的 GitHub issue 编写 UI 测试,并验证测试确实能复现该 bug。适用于 PR 缺少测试、修复前需要复现测试、或现有测试覆盖不足的场景。
主要能力:按 .NET MAUI 约定创建 HostApp 页面与 NUnit 测试;强制要求测试在修复前失败,以证明其能捕获 bug;提供平台选择、常见失败原因与迭代指引。
必要用法:先阅读 .github/instructions/uitests.instructions.md 获取命名、位置、属性等约定。在 src/Controls/tests/TestCases.HostApp/Issues/IssueXXXXX.cs 创建 HostApp 页面,为交互元素添加 AutomationId,并使用 [Issue()] 属性。在 src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/IssueXXXXX.cs 创建继承 _IssuesUITest 的测试,添加一个 [Category()],交互前用 App.WaitForElement()。编译验证命令示例:dotnet build src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj -c Debug -f net10.0-android --no-restore -v q。运行验证:pwsh .github/skills/verify-tests-fail-without-fix/scripts/verify-tests-fail.ps1 -Platform <platform> -TestFilter "IssueXXXXX"。
限制:测试必须失败才算完成;若通过需迭代,3 次后停止并询问用户。需提供 issue 编号、描述或复现步骤及受影响平台。XAML 仅在 bug 涉及 XAML 解析时使用。iOS 设备选择等细节见原文。