用途:在 Dart 包中检查并改进测试覆盖率,适用于被要求“检查测试覆盖率”或“提升覆盖率”,以及需要找出库中未被测试部分时。
主要能力:按工作流先确保测试通过,再收集覆盖率数据,解读结果,最后补充测试覆盖遗漏行。支持行级覆盖率,也可通过 --branch-coverage 收集分支级覆盖率。
使用方式:先运行 dart test 确认测试通过;再运行 dart test --coverage=.dart_tool/coverage 收集 JSON 格式覆盖率。解读结果有两种方式:一是使用仓库自带的零依赖脚本,在项目根目录运行 dart run .agent/skills/dart-test-coverage/scripts/interpret_coverage.dart .dart_tool/coverage <package_name>,其中 <package_name> 替换为 pubspec.yaml 中的包名;二是使用 package:coverage 的 format_coverage,运行 dart run coverage:format_coverage --in=.dart_tool/coverage --out=stdout --pretty-print --report-on=lib 获得带命中次数的可读输出。
报告建议:先给出总体百分比,再指出具体文件与遗漏行,并把行号翻译为对应函数或代码块,提出可直接采用的测试示例;多文件时用表格汇总文件、覆盖率与遗漏行。
限制与约束:收集覆盖率前必须确认测试通过;不要提交 .dart_tool/coverage 目录;覆盖率改进应聚焦 lib/ 文件,而非 test/ 或生成文件。输出目录选用 .dart_tool/coverage 是因为该目录通常已在 .gitignore 中忽略。