check-coverage

Solid

Ensure comprehensive test coverage for a CLI handler. Use when adding a new command or auditing existing handler coverage.

Testing & QA 236 stars 22 forks Updated today MIT

Install

View on GitHub

Quality Score: 86/100

Stars 20%
79
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
70
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

Ensure the handler and tests for `$ARGUMENTS` provide comprehensive coverage. ## 1. Gather Documentation Find documentation for the tool (need at least one source): **tldr:** ``` ls ~/source/tldr/pages/*/$ARGUMENTS*.md cat ~/source/tldr/pages/*/$ARGUMENTS.md ``` **Local CLI:** ``` $ARGUMENTS --help man $ARGUMENTS ``` Stop if neither source exists. ## 2. Explore Subcommands For tools with subcommands, recursively explore: ``` $ARGUMENTS <subcommand> --help $ARGUMENTS help <subcommand> ``` Build a mental model of: - All subcommands and their actions - Which operations are read-only (safe) vs mutate state (unsafe) - Global flags that affect parsing - Edge cases ## 3. Review Existing Tests Read `tests/cli/test_$ARGUMENTS.py` and check for: - Coverage of all subcommands - Both safe and unsafe variants of each action - Global flag handling - Edge cases from the docs ## 4. Add Missing Tests Add aspirational test cases for anything missing. Follow existing format: ```python TESTS = [ # --- Subcommand group --- ("$ARGUMENTS <subcommand> <safe-action>", True), ("$ARGUMENTS <subcommand> <unsafe-action>", False), ] ``` ## 5. Iterate Until Tests Pass ``` just test ``` For each failure, determine if the test expectation is correct: - If yes, update `src/dippy/cli/$ARGUMENTS.py` - If no, fix the test ## 6. Verify `just check` MUST pass before you're done.

Details

Author
ldayton
Repository
ldayton/Dippy
Created
5 months ago
Last Updated
today
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category