generate-tests
Skill55 starsChanged 59 days agoMITView on GitHub
Use when the user asks to generate, create, write, or add unit tests for existing code, or to cover a class, method, or file with tests — including Java targets using JUnit 5, Mockito, or AssertJ. Not for analysis-only requests that stop at listing test cases.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- coco-research/cocotheir own version, first seen Nov 1, 2026
- Terryc21/sitreptheir own version, first seen Nov 1, 2026
- hidai25/eval-viewtheir own version, first seen Nov 1, 2026
- chidekina/aria-superpowerstheir own version, first seen Oct 13, 2026
- simu5116/ClaudeCodetheir own version, first seen Mar 18, 2026
- toantran292/claude-skillstheir own version, first seen Mar 11, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- coco-research/coco★ 797same name
- hidai25/eval-view★ 140same name
- Terryc21/sitrep★ 50same name
- zbruhnke/claude-code-starter★ 16same name
- chidekina/aria-superpowers★ 2same name
- simu5116/ClaudeCode★ 0same name
- toantran292/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- generate-test-casesSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 13 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
13
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Do not skip any step in the workflow below.
- Distinctive: line 19
Do not take shortcuts with test data — read the actual classes to use correct constructors and fields.
- Very specific: line 29
Read dependencies: Follow imports to read DTOs, entities, enums, custom exceptions, and other types referenced by the target (as specified …
- Very specific: line 30
Check for existing tests: Search for {ClassName}Test or {ClassName}Tests in the test directory (as specified in existing-test-awareness …
- Distinctive: line 31
If found, read fully — you will add missing tests to it, not create a new file
- Distinctive: line 32
If not found, scan 2-3 neighboring test classes to learn project conventions
- Very specific: line 71
Test method name format: {testedMethod}_{givenState}_{expectedOutcome}
- Distinctive: line 85
If an existing test class was found in Step 1, add new test methods to it (do not create a duplicate file)
- Distinctive: line 87
Create or update the test file using the Write tool
- Very specific: line 91
Run compilation and fix any issues (max 5 attempts — see compilation-verification.md)
- Very specific: line 92
Run the generated test class to verify all tests pass (see test-execution-verification.md)
- Very specific: line 94
If a test resists fixing after 3 attempts, keep it in the file: mark it @Disabled with the reason and report it (see …
- Distinctive: line 102
If the specified target does not exist, inform the user with the exact path you searched and ask for clarification.
- Distinctive: line 105
If the target code is in a language without specific rules (not Java), apply only the general rules and inform the user that …
- Distinctive: line 108
If compilation fails after 5 attempts:
- Distinctive: line 109
Stop and show the user the remaining errors
- Distinctive: line 111
Ask the user to resolve the build issue before continuing
- Distinctive: line 114
If tests fail because the production code behaves differently than expected:
- Distinctive: line 115
Do NOT modify production code
- Very specific: line 117
If the behavior seems like a bug, add a comment: // NOTE: current behavior may be a bug — {description}
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Generate Tests Skill
You will analyze code and generate high-quality unit tests for a given target.
Target to test: $ARGUMENTS
Quality Standards
- Take your time to analyze the code thoroughly before generating test cases.
- Quality is more important than speed — read all relevant source files and rules carefully.
- Do not skip any step in the workflow below. Every step exists for a reason.
- Do not take shortcuts with test data — read the actual classes to use correct constructors and fields.
Instructions
Step 1: Read Rules and Analyze Context
- Read the relevant rules from
./rules/tests/based on code type (see Rules Reference below) - Read the target source file/class/method
- Read dependencies: Follow imports to read DTOs, entities, enums, custom exceptions, and other types referenced by the target (as specified in
code-context-analysisrule) - Check for existing tests: Search for
{ClassName}Testor{ClassName}Testsin the test directory (as specified inexisting-test-awarenessrule)- If found, read fully — you will add missing tests to it, not create a new file
- If not found, scan 2-3 neighboring test classes to learn project conventions
Step 2: Establish the Test Case List
If a test case list for this target is already present — generate-test-cases ran
first, whether the user invoked it or the agent did — that list is the plan. Generate
from it. Do not re-analyze the target from scratch; where your reading of the code
differs, name the cases you add or drop and why, so the change to the plan is visible.
If there is no such list, produce one here before writing any test code:
- Analyze ALL code branches, including:
- Success paths
- Error/exception paths
- Validation logic
- Private/protected methods called by the target
- Security annotations (if present)
- Apply the INCLUDE/EXCLUDE rules strictly
- Output the list in the format below
Either way, continue straight to Step 3. The list is printed so the user can audit the plan against the generated tests afterwards; the run stays unattended end to end.
Test Case Output Format
## Test Cases for {ClassName}.{methodName}
### 1. {testMethodName}
- **Given:** {preconditions/input state}
- **When:** {action being tested}
- **Then:** {expected outcome}
- **Code branch:** {which code path this covers}
### 2. {testMethodName}
...Naming Convention
Test method name format: {testedMethod}_{givenState}_{expectedOutcome}
Examples:
calculateTotal_validProducts_returnsSumcalculateTotal_emptyList_throwsIllegalArgumentExceptiongetUser_unauthorized_returns401
Step 3: Generate Test Code
- Determine code type and apply the matching rules:
- Controller → Apply
controller-test-rules.md(use@WebMvcTest, MockMvc patterns) - Service / Domain logic → Apply
domain-service-rules.md(use@ExtendWith(MockitoExtension.class), Mockito patterns) - Repository / Messaging / Other types → Apply
domain-service-rules.mdas baseline; inform the user that type-specific rules are not yet available - All Java code → Always apply
java-test-template.md,argument-matching.md,json-serialization.mdregardless of code type
- Controller → Apply
- If an existing test class was found in Step 1, add new test methods to it (do not create a duplicate file)
- Generate tests following all rules and the test cases from Step 2
- Create or update the test file using the Write tool
Step 4: Verify Compilation and Execution
- Run compilation and fix any issues (max 5 attempts — see
compilation-verification.md) - Run the generated test class to verify all tests pass (see
test-execution-verification.md) - Fix any failing tests by changing the test — production code stays as it is
- If a test resists fixing after 3 attempts, keep it in the file: mark it
@Disabledwith the reason and report it (seetest-execution-verification.md)
Troubleshooting
Target file not found
If the specified target does not exist, inform the user with the exact path you searched and ask for clarification.
Unsupported language
If the target code is in a language without specific rules (not Java), apply only the general rules and inform the user that language-specific conventions may need manual review.
Compilation keeps failing
If compilation fails after 5 attempts:
- Stop and show the user the remaining errors
- Suggest possible causes (missing dependencies, incompatible versions)
- Ask the user to resolve the build issue before continuing
Tests fail due to production code behavior
If tests fail because the production code behaves differently than expected:
- Do NOT modify production code
- Fix the test to match actual behavior
- If the behavior seems like a bug, add a comment:
// NOTE: current behavior may be a bug — {description}
Example
User says: "/generate-tests src/main/java/com/example/service/OrderService.java"
Step 1: Agent reads rules, reads OrderService.java, reads OrderRequest.java,
Order.java, OrderRepository.java (dependencies), checks for
existing OrderServiceTest.java
Step 2: Agent outputs 7 test cases covering:
- createOrder success path
- createOrder with invalid request (validation)
- processPayment success
- processPayment failure
- calculateTotal with products
- calculateTotal with empty list
- cancelOrder for non-existent order
Step 3: Agent generates OrderServiceTest.java with @ExtendWith(MockitoExtension.class),
mocked repository and payment service, 7 test methods.
Step 4: Agent runs `mvn test -Dtest=OrderServiceTest -q`, all tests pass.
Result: Complete test file delivered with 7 passing tests.Rules Reference
CRITICAL: You MUST read and apply all relevant rules from the ./rules/tests/ directory.
Maintenance note: General rules in
./rules/tests/general/are shared with thegenerate-test-casesskill (which has copies inrules/general/). When updating rules, keep both locations in sync.
General Rules (Always Apply)
general/test-case-generation-strategy.md- INCLUDE/EXCLUDE criteriageneral/naming-conventions.md- Test naming formatgeneral/general-principles.md- Core testing principles (Given-When-Then, actual/expected)general/technology-stack-detection.md- Detect language and frameworkgeneral/what-makes-good-test.md- Clarity, Completeness, Conciseness, Resiliencegeneral/cleanly-create-test-data.md- Use helpers and builders for test datageneral/keep-cause-effect-clear.md- Effects follow causes immediatelygeneral/no-logic-in-tests.md- KISS > DRY, avoid logic in assertionsgeneral/keep-tests-focused.md- One scenario per testgeneral/test-behaviors-not-methods.md- Separate tests for behaviorsgeneral/verify-relevant-arguments-only.md- Only verify relevant mock argumentsgeneral/prefer-public-apis.md- Test public APIs over private methodsgeneral/existing-test-awareness.md- Check for existing tests, match project conventionsgeneral/code-context-analysis.md- Read dependencies before writing tests
Java Unit Tests
java/unit/java-test-template.md- Basic template, FORBIDDEN annotationsjava/unit/json-serialization.md- Use explicit JSON literalsjava/unit/argument-matching.md- Use ArgumentCaptor, not any()java/unit/logging-rules.md- OutputCaptureExtension for logsjava/unit/domain-service-rules.md- Mockito patterns for servicesjava/unit/controller-test-rules.md- @WebMvcTest and MockMvc patterns for controllers
Post-Generation
post-generation/compilation-verification.md- Verify compilationpost-generation/test-execution-verification.md- Verify tests pass
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

