前言¶
在 DSH 的插件體系中,測試結果的解析依賴於具體的 Runner。pytest、Vitest、Jest 和 Cargo 等工具輸出的摘要格式各異,直接處理這些異構數據會增加上層邏輯的複雜度。dsh-test-normalizer 插件旨在將上述框架的測試結果統一爲穩定的結構,以便於後續的編排與分析。
插件定位¶
這是一個面向 DSH 的結構化測試結果歸一化插件。它負責將 pytest、Vitest、Jest 和 Cargo 的測試摘要解析爲統一的內部格式。該插件屬於 MIT 協議開源項目,由用戶 MkaliezZ 維護。
核心功能¶
- 多框架解析:支持解析 pytest、Vitest、Jest 和 Cargo 的測試摘要,將其轉換爲穩定的輸出形狀。
- 運行器適配:DSH 適配器(Adapter)接受宿主提供的 Runner,插件本身不通過自身邏輯繞過 DSH 的執行策略。
安裝與啓用¶
該插件以 npm 包形式發佈,包名爲 @mkaliezz/dsh-test-runner。安裝後需在 DSH 配置中指定其 bundle patch 文件以完成集成。
在 package.json 中定義了插件的入口文件爲 lib/src/plugin.js,類型爲 ES Module。DSH 配置中需包含 bundle patch 指令,指向 cordis.patch.yml 文件:
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
}
典型用法¶
當前文檔未提供具體的命令行調用示例。根據功能描述,該插件作爲 DSH 體系的一部分,通過宿主提供的 Runner 運行,並將不同框架的測試摘要轉換爲統一結構。實際使用時需參考 DSH 的運行器配置與宿主 Runner 的對接方式。
適用場景與注意¶
- 環境要求:插件依賴 Node.js 環境,且要求版本不低於 20。
- 權限與策略:插件通過 DSH 的 bundle patch 機制集成,本身不執行繞過 DSH 執行策略的操作,需依賴宿主 Runner 的配置。
- 代碼審查:在使用前應檢查源碼與許可證(MIT),確認其符合項目安全要求。
總結¶
dsh-test-normalizer 解決了在 DSH 環境下處理多種測試框架輸出不一致的問題。通過引入 @mkaliezz/dsh-test-runner 並配置 cordis.patch.yml,可以將 pytest、Vitest、Jest 和 Cargo 的結果歸一化。這是一個輕量級的插件,適合需要在單一 Harness 流程中集成多種測試工具的場景。