用途:在 microsoft/aspire 仓库中复现并修复 flaky(不稳定)或被隔离(quarantined)的测试。
主要能力:强制遵循 investigate→reproduce→fix→verify 循环,每步设检查点,禁止直接跳到写修复代码。流程包括:从 issue 收集各操作系统失败率与错误信息并阅读测试代码;分析已有隔离失败日志;优先本地复现;本地失败时用 CI 工作流 reproduce-flaky-tests.yml 分级复现(单测试→隔离项目→基于日志);分析日志确认根因;应用修复并先本地后 CI 验证;清理调查分支并创建最终 PR。
使用方式:本地复现用 run-test-repeatedly.sh(Linux/macOS)或 run-test-repeatedly.ps1(Windows),例如 ./.agents/skills/fix-flaky-test/run-test-repeatedly.sh -n 20 -- dotnet test tests/<TestProject>.Tests/<TestProject>.Tests.csproj --no-build -- --filter-method "*.<TestMethodName>" --filter-not-trait "quarantined=true" --filter-not-trait "outerloop=true"。隔离测试需在构建和测试时加 /p:RunQuarantinedTests=true。脚本选项有 -n、--run-all、--help,结果存于 /tmp/test-results-<timestamp>/ 或 %TEMP%\test-results-<timestamp>\。采用双分支工作流:调查分支(<base-branch>-investigate,含禁用 ci.yml、配置复现工作流、修复,开为草稿 PR)与修复分支(仅含干净修复)。用 SQL 表 todos、todo_deps、session_state 跟踪进度与参数。
适用场景:仓库内被隔离或偶发失败的测试修复。
限制:仅面向 microsoft/aspire 仓库;本地复现要求当前 OS 与失败 OS 匹配或失败与 OS 无关;迭代次数依失败率启发式选择;资料未提供具体收费、价格与平台信息。