DeepSHPlugins
dsh-flakefinder 项目预览
GITHUB / COMMUNITY PROJECT

dsh-flakefinder

生态与开发JavaScriptMIT

测试稳定性工具:重复运行 vitest/jest/pytest/node:test,识别 flaky 用例,历史留档与隔离清单。

2 StarsSTARDUSTLC666 更新时间 2026-09-05
访问 GitHub 仓库
dsh-flakefinder 项目预览

项目介绍

中文

测试稳定性工具:重复运行 vitest/jest/pytest/node:test,识别 flaky 用例,历史留档与隔离清单。

English

Test-stability tools: repeatedly run vitest/jest/pytest/node:test suites, classify flaky cases, keep history and maintain a quarantine manifest.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
STARDUSTLC666
仓库
STARDUSTLC666/dsh-flakefinder
GitHub Stars
2
Forks
0
开发语言
JavaScript
许可证
MIT
最近推送
2026-09-05
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

58/ 100
维护活跃
97
文档与实用信息
100
生态关注度
14
安装便捷信号
75
项目声明信号
100

近 6 天仍在更新;README 含完整安装与使用说明;关注度尚低(2)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add dsh-flakefinder

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

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/[email protected] 源码模式下验证(2026-09-02)。遵循 cordis 组合包补丁模型(cordis.patch.yml + dsh.bundle.patch),运行时不 import 任何 @deepseek-ai/* 内部模块。

安装

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="定时器竞态")

配置

字段默认说明
defaultRuns5flaky_detect 默认重复次数(3-20)
maxRuns20单次允许的最大重复次数(3-50)
timeoutMs120000单轮测试运行超时
graceMs10000超时后宽限
writeApprovaltrue隔离清单写操作是否走审批门
dataDirDSH_HOME/.dsh-flakefinder历史存储目录
quarantineFile<cwd>/.flakefinder.json隔离清单路径
pythonPathDSH_FLAKEFINDER_PYTHON 或 python/python3pytest 使用的 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

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目