前言¶
在使用 DeepSeek Harness (DSH) 構建智能體時,Agent 運行完帶覆蓋率的測試後,得到的覆蓋率報告往往文件體積大、結構散亂,難以直接轉化爲補測指導。本插件旨在解決這一中間環節的問題,將各類覆蓋率報告解析爲結構化數據,直接輸出最該補測試的文件列表以及確切的未覆蓋行區間。
是什麼¶
dsh-test-coverage 是一個由 uckkk 維護的 DSH 插件。它專注於解析主流格式的代碼覆蓋率報告,並輸出可直接用於指導編寫測試用例的數據。該插件純 Node 實現,不依賴 shell 命令、網絡請求或外部服務。
核心功能¶
- 解析覆蓋率報告:支持 LCOV(
.lcov/lcov.info)、Cobertura(coverage.xml)、Istanbul / Vitest / Jest(coverage-final.json)以及 Go 的cover.out格式。 - 結構化輸出:產出總體行覆蓋率與逐文件覆蓋率表,且表格按覆蓋率從低到高排序,便於優先處理。
- 精準定位缺口:提供最該補測試的文件列表,並支持指定文件查看確切的未覆蓋行區間。
- 本地化運行:純 Node 實現,無 shell、無網絡、無外部服務依賴。
安裝與啓用¶
安裝插件:
dsh plugin add dsh-test-coverage
安裝後,在 profile 的 package.json 的 dsh.profile.bundles 中加入 "dsh-test-coverage"(或通過插件市場一鍵安裝)。
典型用法¶
插件註冊了兩個工具函數,分別用於查看總體情況和定位具體缺口。
- 查看項目總體覆蓋率:
調用coverage_report函數,傳入報告路徑。
coverage_report(path='/workspace/coverage/lcov.info')
該調用會返回總體行覆蓋率、逐文件覆蓋率表以及覆蓋最低的文件列表。
- 查看指定文件的未覆蓋行:
調用coverage_gaps函數,指定文件名和報告路徑。
coverage_gaps(file='src/parser.js', path='/workspace/coverage')
該調用會返回指定文件中確切的未覆蓋行區間。
適用場景與注意¶
適用場景:當你已經通過項目自帶的測試命令生成了覆蓋率報告,需要在 DSH 上下文中快速分析覆蓋率、定位未覆蓋代碼時,使用此插件最爲合適。
注意事項:
- 本插件只做“解析與分析”,本身不運行測試。運行測試並生成覆蓋率報告,請使用項目自帶的測試命令。
- 針對大報告,插件會自動截斷輸出:文件表最多顯示 300 項,行區間段最多顯示 400 段,以避免佔用過多上下文。
- 安裝即在本機運行第三方代碼。請自行審閱源碼與許可證(MIT),確保合規。
總結¶
dsh-test-coverage 能夠有效降低智能體在處理覆蓋率報告時的認知負荷,將雜亂的文本報告轉化爲可執行的結構化數據。通過優先展示覆蓋率最低的文件和未覆蓋的行區間,它直接輔助開發者完成補測工作。