dsh-flakefinder:DeepSeek Harness 测试稳定性插件

前言

在 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 追踪历史,可以有效提升测试环境的稳定性判断效率。

GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜