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 倉庫

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

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

小夜