用途:在 Dart 包中运行并解读测试覆盖率,适合在需要“检查测试覆盖率”或“提升覆盖率”时使用,也用于识别库中未被测试的部分。
主要能力:提供一套收集与解读覆盖率的工作流。先运行测试,再用 dart test --coverage=.dart_tool/coverage 收集 JSON 格式覆盖率;可用仓库自带的无依赖脚本汇总覆盖百分比与遗漏行,也可用 package:coverage 的 format_coverage 输出带命中次数的可读结果。复杂条件逻辑可加 --branch-coverage 收集分支级覆盖率。
使用方式:先确保 dart test 通过;收集覆盖率:dart test --coverage=.dart_tool/coverage;解读结果:dart run skills/dart-test-coverage/scripts/interpret_coverage.dart .dart_tool/coverage <package_name>,或将 <package_name> 替换为 pubspec.yaml 中的名称;也可运行 dart run coverage:format_coverage --in=.dart_tool/coverage --out=stdout --pretty-print --report-on=lib。之后补充测试覆盖遗漏行。报告时先给总体百分比,列出具体文件与遗漏行,并把行号翻译成对应的函数或代码块,给出可直接应用的测试示例,多文件可用表格汇总。
限制与注意事项:不要为生成代码(.g.dart、.freezed.dart、protobuf)、平台特定 FFI/OS 入口点、example/ 示例应用与 tool/ 脚本收集覆盖率,除非包明确要求全仓库 100% 覆盖;dart test 失败时先修复测试再收集覆盖率;不要提交 .dart_tool/coverage 目录;改进重点放在 lib/ 文件而非 test/ 或生成文件。