kevmoo/dart-test-coverage
|- Understand and improve test coverage in a Dart package. Helps agents run coverage, interpret results, and identify missed lines.
npx skills add https://github.com/kevmoo/dash_skills --skill dart-test-coverage
Guidelines for running and interpreting test coverage in Dart packages.
To find areas lacking test coverage:
Follow the workflow to generate and interpret coverage data:
dart test --coverage=.dart_tool/coverageformat_coverage as described inthe Interpreting Results section to identify specific files and missed
lines.
dart test.dart test --coverage=.dart_tool/coverage.Run the following command to collect coverage in JSON format:
dart test --coverage=.dart_tool/coverage
> [!NOTE]
> We use .dart_tool/coverage as the output directory because .dart_tool
> is typically already ignored in .gitignore files.
> [!TIP]
> For projects with complex conditional logic, you can pass the
> --branch-coverage flag to dart test to collect branch-level coverage.
This repository includes a zero-dependency script that parses the raw JSON
output and provides a summary of covered percentage and missed lines.
Run it from the project root (adjust path to script as needed):
dart run skills/dart-test-coverage/scripts/interpret_coverage.dart .dart_tool/coverage <package_name>
Replace <package_name> with the name from pubspec.yaml.
Example Output:
package:my_pkg/src/file.dart: 50.0% (2/4 lines)
Missed lines: 3, 4
If package:test is installed, package:coverage is likely available as a
transitive dependency. You can use its format_coverage tool.
To get a human-readable "pretty print" of the coverage:
dart run coverage:format_coverage --in=.dart_tool/coverage --out=stdout --pretty-print --report-on=lib
This will output the file content with hit counts on the left (e.g., 0| for
missed lines).
When presenting coverage results to the user, follow these guidelines:
Look at the source file and tell the user which functions or blocks are
untested (e.g., "The divide function is missing coverage").
immediately apply to cover the missed lines.
use a markdown table with columns for File, Coverage %, and Missed Lines
to make the summary easy to scan.
.dart_tool/coverage directory.lib/ files, not test/ or generated files.Take kevmoo/dart-test-coverage from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.