test-review
1
总安装量
1
周安装量
#51521
全站排名
安装命令
npx skills add https://github.com/petestewart/claude-skills --skill test-review
Agent 安装分布
cursor
1
claude-code
1
Skill 文档
Test Review – Unit Test Quality Review Skill
Review unit tests for quality, coverage, consistency, and adherence to established codebase patterns.
Usage
/test-review [path]
Where:
[path]– Optional. Directory or file to review. Defaults to the entire test suite.
Examples
/test-review # Review all tests
/test-review spec/ # Review Ruby specs
/test-review tests/unit/ # Review specific directory
/test-review src/__tests__/auth.test.ts # Review specific file
Review Criteria
This skill evaluates tests against five key areas:
1. Test Volume – No Overabundance
Flags:
- Multiple tests covering identical behavior with trivial variations
- Excessive permutation testing (e.g., testing every input combination when a few representative cases suffice)
- Tests for trivial getters/setters with no logic
- Redundant assertions that test the same thing multiple ways
- Tests that duplicate integration test coverage unnecessarily
Guidance:
- Each test should earn its place by covering distinct behavior
- Prefer fewer, more meaningful tests over many superficial ones
- “One assertion per test” is a guideline, not a ruleâtest logical units of behavior
2. Test Coverage – No Critical Gaps
Flags:
- Missing tests for public API methods
- Untested error handling and edge cases
- No tests for critical business logic
- Missing boundary condition tests
- Untested state transitions
- No tests for recently modified code
Guidance:
- Focus coverage on code with high complexity or business impact
- Ensure error paths are tested, not just happy paths
- Test boundaries: empty inputs, nulls, max values, off-by-one scenarios
3. Uniformity – Consistent Test Structure
Flags:
- Inconsistent test naming patterns within the same project
- Mixed describe/context/it nesting styles
- Varying setup patterns (beforeEach vs inline setup)
- Inconsistent assertion styles
- Mixed approaches to test data creation
Guidance:
- Tests in the same project should feel like they were written by one person
- Follow the dominant pattern, even if you prefer something else
- Consistency aids readability and maintenance
4. Pattern Adherence – Respect Existing Conventions
This is the most critical review criteria.
Before suggesting any change, first discover what patterns exist in the codebase:
Discovery Steps:
- Identify the test framework and version in use
- Find existing test files (minimum 3-5 representative files)
- Document observed patterns for:
- File naming (
*.test.ts,*_spec.rb,*Test.java, etc.) - Directory structure (
__tests__/,spec/,test/, etc.) - Describe/context/it block organization
- Setup and teardown approaches
- Mocking/stubbing libraries and patterns
- Factory/fixture usage
- Assertion style
- Test data patterns
- File naming (
Flags:
- Introducing new mocking libraries when one is already established
- Using different factory patterns than existing tests
- Changing describe block organization style
- Introducing new assertion matchers without justification
- Adding test utilities that duplicate existing helpers
Guidance:
- New patterns require extraordinary justification
- “I prefer it this way” is not justification
- If the existing pattern is genuinely problematic, flag it for discussion rather than silently changing it
5. Runnability – Tests Must Pass
Verification Steps:
- Identify the test command from package.json, Makefile, or project docs
- Run the test suite (or relevant subset)
- Capture any failures, errors, or warnings
Flags:
- Tests that fail
- Tests that are skipped without explanation
- Missing dependencies that prevent test execution
- Environment setup issues
- Flaky tests (pass/fail inconsistently)
Guidance:
- All tests should pass before review is complete
- Skipped tests should have comments explaining why
- Tests should run in isolation without external dependencies
Review Process
Phase 1: Discovery – Understand Existing Patterns
Before reviewing any new or changed tests:
-
Locate test configuration:
# Find test config files ls -la jest.config* vitest.config* .rspec* pytest.ini* phpunit.xml* -
Sample existing tests:
- Read 3-5 established test files
- Document the patterns observed
- Note any helper files, factories, or shared setup
-
Identify test command:
- Check package.json scripts
- Check Makefile targets
- Check CI configuration
Phase 2: Analysis – Review Against Criteria
For each test file under review:
-
Check Volume:
- Count tests vs. lines of source code being tested
- Identify any obvious redundancy
- Flag tests that don’t add coverage value
-
Check Coverage:
- Compare public methods to test coverage
- Identify untested branches
- Note missing edge cases
-
Check Uniformity:
- Compare structure to other test files
- Note style inconsistencies
- Check naming conventions match
-
Check Pattern Adherence:
- Compare mocking approach to established pattern
- Check factory/fixture usage matches existing
- Verify describe block organization follows convention
Phase 3: Execution – Verify Tests Run
# Run the tests
npm test # or
yarn test # or
bundle exec rspec # or
pytest # or
go test ./... # etc.
Capture and report:
- Pass/fail status
- Any skipped tests
- Coverage metrics if available
- Runtime warnings
Phase 4: Report – Structured Output
Output a review in this format:
## Test Review Report
### Summary
[1-2 sentence overall assessment]
### Existing Patterns Observed
| Pattern | Observed Convention |
|---------|---------------------|
| Test Framework | [e.g., Jest 29, RSpec 3.12] |
| File Naming | [e.g., `*.test.ts`] |
| Directory Structure | [e.g., `__tests__/` alongside source] |
| Mocking | [e.g., jest.mock with manual mocks in `__mocks__/`] |
| Factories | [e.g., Factory Bot with factories in `spec/factories/`] |
| Assertion Style | [e.g., expect().toEqual()] |
### Test Execution Results
- **Status:** [PASS/FAIL]
- **Total Tests:** [N]
- **Passed:** [N]
- **Failed:** [N]
- **Skipped:** [N]
- **Coverage:** [X% if available]
### Issues Found
#### Volume Concerns
[List any redundant or excessive tests]
#### Coverage Gaps
[List missing tests with severity]
#### Uniformity Issues
[List inconsistencies with file:line references]
#### Pattern Violations
[List deviations from established patterns - MOST IMPORTANT]
#### Runnability Issues
[List any test failures or execution problems]
### Recommendations
[Prioritized list of suggested changes]
### Approved Patterns
[Note tests that exemplify good practices]
Quick Reference
Trigger Phrases:
- “/test-review”
- “review my tests”
- “check my test coverage”
- “are my tests good”
- “review the test file”
- “analyze my unit tests”
Key Principles:
- Pattern adherence is paramount – Never introduce new patterns without extraordinary justification
- Discover before prescribing – Always understand existing conventions first
- Quality over quantity – Fewer meaningful tests beats many trivial ones
- Tests must run – A failing test suite is the top priority to fix
Review Priority Order:
- Runnability (tests must pass)
- Pattern adherence (respect existing conventions)
- Coverage gaps (critical paths must be tested)
- Uniformity (consistency matters)
- Volume concerns (remove redundancy)