
Test Detect
- 42 installs
- 30.1k repo stars
- Updated August 4, 2026
- davila7/claude-code-templates
Auto-detect the project's testing framework (Jest, Vitest, Playwright, Cypress, pytest, Go test, cargo) and run all, file-specific, or generated tests.
About
Detects the testing framework from project files and runs the appropriate test command for all tests, a specific file, or generates basic tests. A developer uses it to run the right tests without knowing the setup.
- First-match detection across Vitest, Jest, Playwright, pytest, Go, cargo and more
- Modes for full suite, single-file, or test generation
Test Detect by the numbers
- 42 all-time installs (skills.sh)
- Ranked #1,262 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/davila7/claude-code-templates --skill test-detectAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 42 |
|---|---|
| repo stars | ★ 30.1k |
| Last updated | August 4, 2026 |
| Repository | davila7/claude-code-templates ↗ |
What it does
Auto-detect the project's testing framework (Jest, Vitest, Playwright, Cypress, pytest, Go test, cargo) and run all, file-specific, or generated tests.
Files
Test Detect
Automatically detect the testing framework in the current project and run the right tests.
Workflow
Step 1: Detect the testing framework
Check for these files in order (first match wins):
| Check | Framework | Run Command |
|---|---|---|
vitest.config.* exists OR vitest in devDeps | Vitest | npx vitest run |
jest.config.* exists OR jest in devDeps | Jest | npx jest |
playwright.config.* exists | Playwright | npx playwright test |
cypress.config.* exists | Cypress | npx cypress run |
pytest.ini or conftest.py or pyproject.toml with [tool.pytest] | pytest | python -m pytest |
go.mod exists | Go test | go test ./... |
Cargo.toml exists | Rust/cargo | cargo test |
mix.exs exists | ExUnit | mix test |
Gemfile with rspec | RSpec | bundle exec rspec |
package.json has scripts.test | npm test | npm test |
Report the detected framework before proceeding.
Step 2: Parse arguments
Check $ARGUMENTS for the mode:
- No arguments or "all": Run the full test suite (Step 3)
- File path (e.g.,
src/auth/login.ts): Run tests for that file (Step 4) - "generate" + file path (e.g.,
generate src/utils.ts): Generate tests (Step 5)
Step 3: Run full test suite
Run the detected test command. After completion:
- Report total tests, passed, failed, skipped
- If tests fail, show the first 3 failure messages with file:line references
- Suggest: "Run
/test-detect <failing-file>to investigate a specific failure"
Step 4: Run tests for a specific file
Given a source file path, find its test file:
Search strategy (try in order): 1. __tests__/<filename>.test.<ext> (Jest convention) 2. <filename>.test.<ext> (co-located) 3. <filename>.spec.<ext> (alternative convention) 4. test/<filename>_test.<ext> (Go/Python convention) 5. tests/test_<filename>.<ext> (pytest convention) 6. <filename>_test.go (Go convention)
Use Glob to find matches. If found, run only that test file:
| Framework | Command |
|---|---|
| Vitest | npx vitest run <test-file> |
| Jest | npx jest <test-file> |
| Playwright | npx playwright test <test-file> |
| pytest | python -m pytest <test-file> |
| Go | go test -run <TestName> ./<package>/ |
| Cargo | cargo test <test_name> |
If no test file found, ask: "No tests found for this file. Want me to generate them? Run /test-detect generate <file>"
Step 5: Generate tests
Read the source file and analyze: 1. Identify all exported functions/classes/components 2. Determine the appropriate test patterns for the framework 3. Generate a test file with:
- Import statements
describeblock per function/classit/testblocks covering: happy path, edge cases, error cases- Framework-appropriate assertions and mocking
Save to the conventional location for the detected framework:
- Jest/Vitest:
__tests__/<filename>.test.<ext>or<filename>.test.<ext>(match existing convention) - pytest:
tests/test_<filename>.py - Go:
<filename>_test.go(same directory) - RSpec:
spec/<filename>_spec.rb
Show the generated file path and ask if the user wants to run the new tests.
Tips
- If multiple frameworks are detected (e.g., Vitest for unit tests + Playwright for e2e), mention both and default to the unit test framework
- For monorepos, detect from the closest config file to the current directory
- If
package.jsonhas bothtestandtest:unit/test:e2escripts, prefer the specific one when context is clear