test-pattern-analysis
Analyze existing tests to identify patterns, fixtures, and conventions before writing new tests
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install mehdic-artk-test-pattern-analysis
Repository
Skill path: .claude/skills/test-pattern-analysis
Analyze existing tests to identify patterns, fixtures, and conventions before writing new tests
Open repositoryBest for
Primary workflow: Write Technical Docs.
Technical facets: Full Stack, Tech Writer, Testing.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: mehdic.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install test-pattern-analysis into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/mehdic/ARTK before adding test-pattern-analysis to shared team environments
- Use test-pattern-analysis for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: test-pattern-analysis
description: Analyze existing tests to identify patterns, fixtures, and conventions before writing new tests
version: 1.0.0
allowed-tools: [Bash, Read]
---
# Test Pattern Analysis Skill
You are the test-pattern-analysis skill. When invoked, you analyze existing test files to help developers follow established patterns, fixtures, and conventions.
## When to Invoke This Skill
**Invoke this skill when:**
- Before writing new tests
- Developer needs to follow existing test conventions
- Looking for reusable fixtures or utilities
- Understanding test framework and patterns
- Ensuring consistency with existing tests
**Do NOT invoke when:**
- No existing tests in project
- First tests being written (no patterns yet)
- Fixing typos in tests
- Emergency bug fixes (skip pattern analysis)
---
## Your Task
When invoked:
1. Execute the test pattern analysis script
2. Read the generated analysis report
3. Return a summary to the calling agent
---
## Step 1: Execute Test Pattern Analysis Script
Use the **Bash** tool to run the pre-built analysis script:
```bash
python3 .claude/skills/test-pattern-analysis/analyze_tests.py
```
This script will:
- Detect test framework (pytest, jest, go test, JUnit)
- Find and analyze existing test files
- Identify common fixtures and test utilities
- Extract test naming conventions
- Find similar tests for reference
- Generate `bazinga/artifacts/{SESSION_ID}/skills/test_patterns.json`
---
## Step 2: Read Generated Report
Use the **Read** tool to read:
```bash
bazinga/artifacts/{SESSION_ID}/skills/test_patterns.json
```
Extract key information:
- `framework` - Detected test framework
- `common_fixtures` - Reusable test fixtures
- `test_patterns` - Structure patterns (AAA, Given-When-Then)
- `similar_tests` - Related existing tests
- `suggested_tests` - Recommended test cases
- `coverage_target` - Project coverage standard
- `utilities` - Test helper functions
---
## Step 3: Return Summary
Return a concise summary to the calling agent:
```
Test Pattern Analysis:
- Framework: {framework}
- Pattern: {AAA|Given-When-Then}
- Naming convention: {pattern}
- Common fixtures: {fixture1}, {fixture2}
- Coverage target: {percentage}%
Suggested test cases:
1. {test case 1}
2. {test case 2}
3. {test case 3}
Similar tests to reference:
- {file1}: {test_name}
- {file2}: {test_name}
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/test_patterns.json
```
---
## Example Invocation
**Scenario: Writing Tests for Password Reset**
Input: Developer needs to write tests for new password reset feature
Expected output:
```
Test Pattern Analysis:
- Framework: pytest
- Pattern: AAA (Arrange-Act-Assert)
- Naming convention: test_<function>_<scenario>_<expected>
- Common fixtures: test_client, test_db, test_user
- Coverage target: 80%
Suggested test cases:
1. test_password_reset_valid_email_sends_token
2. test_password_reset_invalid_email_returns_error
3. test_password_reset_expired_token_returns_error
4. test_password_reset_rate_limiting_prevents_abuse
Similar tests to reference:
- tests/test_auth.py: test_login_valid_credentials_returns_token
- tests/test_email.py: test_send_email_valid_address_succeeds
Reusable fixtures:
- test_client (conftest.py): Flask test client
- test_user (conftest.py): Create test user in database
- mock_email_service (conftest.py): Mock email sending
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/test_patterns.json
```
**Scenario: No Tests Found**
Input: Developer trying to analyze patterns in project with no tests
Expected output:
```
Test Pattern Analysis:
- Framework: detected (pytest)
- Pattern: N/A
No existing tests found. Cannot extract patterns.
Recommendations:
1. Start with standard pytest conventions
2. Use AAA (Arrange-Act-Assert) pattern
3. Name tests: test_<function>_<scenario>_<expected>
4. Target 80% code coverage
5. Create conftest.py for shared fixtures
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/test_patterns.json
```
---
## Error Handling
**If no test files found:**
- Return: "No existing tests found. Cannot extract patterns. Developer should create tests from scratch using framework defaults."
**If no fixtures found:**
- Return: "No common fixtures found. Developer may need to create setup functions."
**If framework detection fails:**
- Try to infer from file patterns
- Return: "Could not detect test framework. Please specify framework."
**If no similar tests found:**
- Return: "No similar tests found. Suggest generic test patterns (happy path, error cases, edge cases)."
---
## Notes
- The script handles all framework detection and pattern extraction
- Focuses on reusable patterns that save developer time
- Prioritizes fixtures and utilities that can be reused
- Suggests comprehensive test cases including edge cases
- Ensures naming conventions are followed for consistency