SuperAPI AI 工具集

dart-collect-coverage

智能体与模型

查看项目

更新于 10-15 21:43

技能介绍

用途:为 Dart 与 Flutter 项目收集测试覆盖率,并生成标准 LCOV 报告。测试结构遵循 Dart 常规范式:Dart 项目用 package:test,Flutter 项目用 flutter_test;单元测试验证函数与方法,组件/Widget 测试验证行为与交互(可配合 package:mockito),集成测试验证整体流程。

主要能力:通过内联注释排除特定行、代码块或整个文件,包括 // coverage:ignore-line、// coverage:ignore-start 与 // coverage:ignore-end、// coverage:ignore-file;格式化时可用 --check-ignore 强制检查这些指令。

使用方式(自动流程):先将 coverage 添加为 dev_dependency,Dart 项目执行 dart pub add dev:coverage,Flutter 项目执行 flutter pub add dev:coverage;然后运行 dart run coverage:test_with_coverage,该脚本会自动运行全部测试、从 Dart VM 收集 JSON 覆盖率数据并格式化为 LCOV。在 Dart workspace(monorepo)中需显式指定测试目录,例如 dart run coverage:test_with_coverage -- pkgs/foo/test pkgs/bar/test。完成后确认项目根目录生成 coverage/,其中包含 coverage/coverage.json 与 coverage/lcov.info。

手动流程:先以 VM 服务方式运行测试,例如 dart run --pause-isolates-on-exit --disable-service-auth-codes --enable-vm-service=8181 test &;再执行 dart run coverage:collect_coverage --wait-paused --uri=http://127.0.0.1:8181/ -o coverage/coverage.json --resume-isolates,可选追加 --function-coverage 与 --branch-coverage(需 Dart VM 2.17.0+);最后执行 dart run coverage:format_coverage --packages=.dart_tool/package_config.json --lcov -i coverage/coverage.json -o coverage/lcov.info --check-ignore。

限制:若某些文件缺少覆盖率,需确保其被测试文件导入并执行,或使用 // coverage:ignore-file 主动排除;coverage 必须放在 dev_dependencies 而非 dependencies。其他平台支持与收费信息暂未提供。