SuperAPI AI 工具集

coverage-uplift

智能体与模型

查看项目

更新于 10-16 00:31

技能介绍

用途:为 microsoft/microsoft-ui-reactor 仓库提升测试覆盖率,要求新增测试真正验证行为,禁止即使被测代码被删除仍能通过的空洞断言。Reactor 是声明式 C#/WinUI 3 框架,reconciler 对不可变 Element 记录做 diff 并修补真实 WinUI 控件。开始前需阅读 AGENTS.md,了解构建/测试命令、注意事项与测试层级表,尤其是 -p:Platform=x64、-p:SkipSignaturesGen=true 构建规则及无头 COMException 陷阱。

触发场景:改进/提升测试覆盖率、为某处添加测试、覆盖未覆盖的行或分支、填补覆盖率缺口、编写单元/自测/E2E。不适用于修改产品代码、修复特定失败测试或审查现有 PR。

主要能力:按层级分类缺口——纯托管逻辑、D3 数学、hook 记账、Yoga 归为单元测试(tests/Reactor.Tests/);涉及实时 WinUI 控件、reconcile、mount 归为自测(tests/Reactor.AppTests.Host/SelfTest/Fixtures/);真实键盘/指针输入、焦点路由、UIA 归为 E2E(tests/Reactor.AppTests/Tests/)。无头单元测试无法构造任何 Microsoft.UI.Xaml 对象,否则抛 COMException。内部接缝可测,Reactor.csproj 已设置 InternalsVisibleTo("Reactor.Tests")。

使用方式:先运行 pwsh tools/coverage/run-coverage.ps1 或 -UnitOnly 获取基线,解析 coverage/merged.cobertura.xml 定位未覆盖行;再按层级添加窄范围测试并注册到相应注册表;随后构建并运行所涉层级;对关键断言做变异检查,确认破坏产品代码后测试会失败;最后重新测量并交叉检查。

限制:部分守卫在无头环境确实不可观测,应如实限定测试范围,不得伪造 oracle。E2E 输入需要交互式桌面,若 SendInput/GetCursorPos 返回 ACCESS_DENIED 需改用 UIA 验证并依赖 CI。切勿把 -m:1 或 -nodereuse:false 放到 dotnet test 命令上,否则会静默零测试运行。具体覆盖率数值、收费与平台信息暂未提供。