Install
$ agentstack add skill-realdougeubanks-claudemarketplace-test-writer ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ● Shell / process execution Used
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Test Writer
Generate comprehensive unit and integration tests for a given file or function, auto-detecting the project test framework and matching the existing test style.
Instructions
When invoked via /test-writer:
- Identify the target. Ask the user: which file or function should tests be written for? Accept:
- An absolute or relative file path (e.g.
src/utils/parser.ts) - A function or method name (ask which file it lives in if ambiguous)
- Read the target file using Read. Understand:
- All exported/public functions, classes, and methods
- Their parameter types, return types, and documented or inferred behavior
- Dependencies (imports/requires) that will need to be mocked
- Detect the test framework using Glob and Read:
- Jest: look for
jest.config.*, or"jest"key inpackage.json - Vitest: look for
vitest.config.*, or"vitest"inpackage.jsondevDependencies - pytest: look for
pytest.ini,pyproject.tomlcontaining[tool.pytest.ini_options], orconftest.py - Go test: look for
go.modand any existing*_test.gofiles - PHPUnit: look for
phpunit.xmlorphpunit.xml.dist, orphpunit/phpunitincomposer.json - Mocha: look for
.mocharc.*, or"mocha"inpackage.jsondevDependencies - RSpec: look for
.rspec,spec/spec_helper.rb, orrspecinGemfile - JUnit: look for
junitinpom.xmlorbuild.gradle/build.gradle.kts - xUnit / NUnit / MSTest: look for
xunit,NUnit, orMSTestpackage references in*.csproj - If multiple are present, ask the user which to use.
- Match existing test style. Use Glob to find existing test files matching
**/*.test.*,**/*.spec.*,**/*_test.*, ortests/**/*. Read 1–2 representative test files to capture:
- Describe/context block structure
- Assertion library and style (
expect,assert,should) - How mocks, stubs, and fixtures are set up
- Import paths and module resolution patterns
- Determine the test file location and name:
- If existing tests are co-located (e.g.
src/foo.ts→src/foo.test.ts), follow that pattern. - If existing tests live in a
tests/or__tests__/directory, mirror the source path there. - If no existing tests exist, default to co-located.
- Generate tests covering:
- Happy path: normal, valid inputs produce the expected output
- Edge cases: empty string/array, zero,
null/undefined/None, maximum values, boundary conditions (e.g. off-by-one) - Invalid input: wrong type, missing required fields, malformed data — verify errors are thrown or returned correctly
- Error conditions: simulate dependency failures using mocks/stubs; verify the function handles them gracefully
- All public functions/methods in the target file — do not skip any exported surface
Follow the detected framework's idioms exactly. Use the same describe block nesting, assertion style, and mock setup patterns found in existing tests.
- Write the test file:
- If the test file does not exist, use Write to create it.
- If the test file already exists, use Read to review it, then use Edit to append new test cases — never overwrite existing tests.
- Run the tests using Bash. For JS/TS frameworks, prefer the project's own test script or local binary — do not use
npx, which can download and execute a package from the network if it isn't installed locally:
- Jest/Vitest/Mocha:
npm test --ifpackage.jsondefines a test script; otherwisenode_modules/.bin/jest(orvitest run/mocha). If neither exists, ask the user before falling back tonpx. - pytest:
python -m pytest -v - Go:
go test ./... -run - PHPUnit:
vendor/bin/phpunit - RSpec:
bundle exec rspec - JUnit:
mvn test -Dtest=orgradle test --tests - xUnit/NUnit/MSTest:
dotnet test --filter - Report pass/fail counts and any error output.
- If tests fail, diagnose the root cause (missing mock, wrong import path, API mismatch) and fix before finishing. Do not leave the user with a broken test file.
Output Format
After writing and running tests, summarize:
## Test Writer — —
### Framework Detected
### Test File Written
``
### Coverage
| Function / Method | Tests Written |
|-------------------|---------------|
| functionName | 4 (happy, edge, invalid, error) |
| anotherFunction | 3 (happy, edge, error) |
### Run Results
Tests: X passed, Y failed, Z total
### Notes
Notes
- This skill writes tests only — it does not modify production code.
- If the target file has no exports or public surface (e.g. it is a CLI entry point), generate integration-style tests that exercise the module end-to-end via its public interface or subprocess.
- Prefer deterministic tests. Avoid
Date.now(),Math.random(), or other non-deterministic values in assertions without mocking them first.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: RealDougEubanks
- Source: RealDougEubanks/ClaudeMarketplace
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.