Skip to content
Development
Command

/test-coverage

Analyze coverage, identify gaps, and generate missing tests toward the target threshold.

From plugin
ecc
239k109 skills72 agents109 commands7 hooks
+1
Install
> /plugin marketplace add affaan-m/ECC
> /plugin install ecc@ecc

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/test-coverage

Context preview

What this command does when you run it.

Analyze coverage, identify gaps, and generate missing tests toward the target threshold.

Command definition

test-coverage.md
description: Analyze coverage, identify gaps, and generate missing tests toward the target threshold.

Test Coverage

Analyze test coverage, identify gaps, and generate missing tests to reach 80%+ coverage.

Step 1: Detect Test Framework

| Indicator | Coverage Command | |-----------|-----------------| | `jest.config.*` or `package.json` jest | `npx jest --coverage --coverageReporters=json-summary` | | `vitest.config.*` | `npx vitest run --coverage` | | `pytest.ini` / `pyproject.toml` pytest | `pytest --cov=src --cov-report=json` | | `Cargo.toml` | `cargo llvm-cov --json` | | `pom.xml` with JaCoCo | `mvn test jacoco:report` | | `go.mod` | `go test -coverprofile=coverage.out ./...` |

Step 2: Analyze Coverage Report

1. Run the coverage command 2. Parse the output (JSON summary or terminal output) 3. List files **below 80% coverage**, sorted worst-first 4. For each under-covered file, identify:

  • Untested functions or methods
  • Missing branch coverage (if/else, switch, error paths)
  • Dead code that inflates the denominator

Step 3: Generate Missing Tests

For each under-covered file, generate tests following this priority:

1. **Happy path** — Core functionality with valid inputs 2. **Error handling** — Invalid inputs, missing data, network failures 3. **Edge cases** — Empty arrays, null/undefined, boundary values (0, -1, MAX_INT) 4. **Branch coverage** — Each if/else, switch case, ternary

Test Generation Rules

  • Place tests adjacent to source: `foo.ts` → `foo.test.ts` (or project convention)
  • Use existing test patterns from the project (import style, assertion library, mocking approach)
  • Mock external dependencies (database, APIs, file system)
  • Each test should be independent — no shared mutable state between tests
  • Name tests descriptively: `test_create_user_with_duplicate_email_returns_409`

Step 4: Verify

1. Run the full test suite — all tests must pass 2. Re-run coverage — verify improvement 3. If still below 80%, repeat Step 3 for remaining gaps

Step 5: Report

Show before/after comparison:

Coverage Report
──────────────────────────────
File                   Before  After
src/services/auth.ts   45%     88%
src/utils/validation.ts 32%    82%
──────────────────────────────
Overall:               67%     84%  PASS:

Focus Areas

  • Functions with complex branching (high cyclomatic complexity)
  • Error handlers and catch blocks
  • Utility functions used across the codebase
  • API endpoint handlers (request → response flow)
  • Edge cases: null, undefined, empty string, empty array, zero, negative numbers
Read more
Ships withecc

Your agent can write code, but ECC gives it a coordinated engineering system and toolbox: it plans before it builds, verifies changes with tests, reviews its own work from a fresh context, remembers what matters, and turns repeated wins into reusable skills

Get the whole plugin