← 返回列表
未验证
DSH 测试稳定性插件:重复运行 vitest/jest/pytest/node:test 找出 flaky…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/19 · 已提供中文文档
DSH 测试稳定性插件:重复运行 vitest/jest/pytest/node:test 找出 flaky 用例,提供历史与隔离清单,零运行时依赖。
综合分
30
GitHub 分
30
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add STARDUSTLC666/dsh-flakefinder该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:已验证本站已于 0 天前真实安装成功(L4 · 真实安装)
- 是什么
- dsh 原生插件 · other
- 装得上吗
- 本站已真实安装成功(L4 · 真实安装,非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 7 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/25(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-flakefinder
让 agent 分清「代码坏了」还是「测试在抽风」。
DeepSeek Harness 测试稳定性插件:支持 vitest / jest / pytest / node:test,重复运行测试并识别 flaky 用例,历史留档、隔离清单、写操作审批门。零运行时依赖。
license stars
Awesome DSH Plugin
工具
| 工具 | 作用 | 写操作 |
| :-- | :-- | :-- |
| flaky_detect | 重复运行测试 N 次,判定 stable-pass / stable-fail / flaky | 否(写历史) |
| flaky_history | 查询检测历史,按目标过滤 | 否 |
| flaky_report | 汇总隔离清单 + 历史,输出稳定性报告 | 否 |
| flaky_quarantine | 把 flaky 用例写入 .flakefinder.json 隔离清单 | 是(审批门) |
| flaky_clear | 从隔离清单移除已恢复的用例 | 是(审批门) |
支持框架:
- vitest:读取 node_modules/vitest/vitest.mjs,使用 JSON reporter
- jest:读取 node_modules/jest/bin/jest.js,使用 --json --outputFile
- pytest:python -m pytest --junitxml,解析 JUnit XML(支持 setup.cfg / pyproject / pytest.ini / tox.ini 探测与 XML 实体解码)
- node:test:node --test --test-reporter=tap,解析 TAP(含 SKIP 指令归类)
- framework: auto 按 vitest → jest → pytest → node:test 自动探测
兼容性
已在官方 @deepseek-ai/dsh@0.1.5-rc.1、Node 24.16.0 上验证(2026-09-11):18 个组件与 Modlens 同载,工具 schema、技能注册及离线只读调用检查通过。采用 cordis.patch.yml + dsh.bundle.patch 组合包模型。Node 要求与该版本 Harness 一致:22.19 及以上的 22.x,或 24 及以上。外部服务的实际业务操作需按各组件配置单独验证。
2026-09-13 修复:保留宿主 subprocess.spawn 的服务对象,避免方法独立传递后因 this 丢失而报错。已在官方 0.1.5-rc.1 和 0.1.5-rc.2、Node 24.16.0 上验证。flaky_detect 已通过真实宿主进程服务连续运行三轮 Node 测试,正确返回 stable-pass。
安装
dsh plugin --profile web add dsh-flakefinder
或手动安装后在 profile 的 cordis.patch.yml 插入:
- id: flakefinder
name: 'dsh-flakefinder'
config:
defaultRuns: 5
writeApproval: true
卸载
dsh plugin --profile web remove dsh-flakefinder
卸载后重启 Web 服务。如需彻底清理,可再手动删除自己 profile cordis.patch.yml 中覆盖的插件行。
使用示例
用户: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 | 5 | flaky_detect 默认重复次数(3-20) |
| maxRuns | 20 | 单次允许的最大重复次数(3-50) |
| timeoutMs | 120000 | 单轮测试运行超时 |
| graceMs | 10000 | 超时后宽限 |
| writeApproval | true | 隔离清单写操作是否走审批门 |
| dataDir | DSH_HOME/.dsh-flakefinder | 历史存储目录 |
| quarantineFile | /.flakefinder.json | 隔离清单路径 |
| pythonPath | DSH_FLAKEFINDER_PYTHON 或 python/python3 | pytest 使用的 Python 解释器 |
隔离清单格式
{
"version": 1,
"quarantined": [
{
"file": "src/checkout.test.ts",
"name": "使用假定时器后恢复真实定时器",
"reason": "定时器竞态,见 issue #12",
"since": "2026-08-16T00:00:00.000Z"
}
]
}
隔离清单只记录,不修改测试源码;agent 跑测试前应先查阅 flaky_report。
工程
- Node >= 22.13,TypeScript,零运行时依赖
- 测试进程走 DSH 官方 subprocess 服务,argv 数组、无 shell
- 全量单测 40+:解析、判定、存储、审批门、pytest 计划、subprocess 超时、注册与 manifest
- pnpm test:构建 + node --test
发布门禁
1. pnpm test 全绿
2. pnpm typecheck
3. 危险模式扫描(eval / child_process / 密钥零容忍)
4. 真实 profile 冒烟:全新临时 profile 安装插件 → 真 boot → stderr 零报错
5. manifest 自检(bundle patch / exports / files 白名单)
License
MIT