前言¶
在 DeepSeek Harness(DSH)的智能体开发流程中,测试结果的反复无常是常见痛点。Agent 需要区分“代码逻辑错误”与“测试本身的不稳定性(Flaky Test)”。dsh-flakefinder 是一个工作流插件,通过重复运行测试来识别不稳定用例,提供历史留档与隔离清单,帮助 Agent 掌握测试稳定性。
插件简介¶
名称:dsh-flakefinder
定位:DeepSeek Harness 测试稳定性插件
维护者:STARDUSTLC666
许可证:MIT
核心价值:零运行时依赖,支持多测试框架,通过隔离清单管理 flaky 用例。
核心功能¶
插件提供五个核心工具,覆盖从检测到隔离的全流程:
flaky_detect:重复运行测试 N 次,判定结果为 stable-pass / stable-fail / flaky。flaky_history:查询检测历史,按目标过滤。flaky_report:汇总隔离清单与历史数据,输出稳定性报告。flaky_quarantine:将 flaky 用例写入隔离清单(写操作)。flaky_clear:从隔离清单中移除已恢复的用例(写操作)。
安装与启用¶
使用官方安装命令即可启用插件:
dsh plugin --profile web add dsh-flakefinder
典型用法¶
Agent 可以通过交互式指令来处理不稳定测试:
用户:src/checkout.test.ts 最近老失败,帮我判断一下
Agent:
flaky_detect(target="src/checkout.test.ts", runs=5)
→ 判定:flaky;3/5 通过,失败集中在 useFakeTimers 用例
→ flaky_quarantine(tests=["src/checkout.test.ts > 定时器恢复"], reason="定时器竞态")
配置说明¶
插件支持通过配置项调整行为。主要配置项如下:
defaultRuns:flaky_detect默认重复次数,默认 5。maxRuns:单次允许的最大重复次数,默认 20。timeoutMs:单轮测试运行超时,默认 120000。graceMs:超时后宽限时间,默认 10000。writeApproval:隔离清单写操作是否走审批门,默认 true。dataDir:历史存储目录,默认DSH_HOME/.dsh-flakefinder。quarantineFile:隔离清单路径,默认<cwd>/.flakefinder.json。pythonPath:pytest 使用的 Python 解释器,默认DSH_FLAKEFINDER_PYTHON或python/python3。
技术细节与注意事项¶
- 零运行时依赖:插件本身不依赖外部运行时库。
- 隔离清单机制:清单只记录,不修改测试源码。Agent 需先查阅
flaky_report再执行隔离。 - 进程服务:测试进程走 DSH 官方 subprocess 服务,使用 argv 数组调用,不依赖 shell。
- 框架支持:支持 vitest、jest、pytest、node:test,支持自动探测或指定框架。
- 兼容性要求:需要 Node.js 22.19 及以上版本(22.x 或 24.x)。
- 卸载提示:卸载后需重启 Web 服务才能生效。
总结¶
dsh-flakefinder 为 DSH 环境提供了识别和管理不稳定测试的标准工具链。通过 flaky_detect 定位问题,利用 flaky_quarantine 进行隔离,配合 flaky_history 追踪历史,可以有效提升测试环境的稳定性判断效率。