前言¶
在使用 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 能够有效降低智能体在处理覆盖率报告时的认知负荷,将杂乱的文本报告转化为可执行的结构化数据。通过优先展示覆盖率最低的文件和未覆盖的行区间,它直接辅助开发者完成补测工作。