Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
davila7 avatar

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-detect

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs42
repo stars30.1k
Last updatedAugust 4, 2026
Repositorydavila7/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

SKILL.mdMarkdownGitHub ↗

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):

CheckFrameworkRun Command
vitest.config.* exists OR vitest in devDepsVitestnpx vitest run
jest.config.* exists OR jest in devDepsJestnpx jest
playwright.config.* existsPlaywrightnpx playwright test
cypress.config.* existsCypressnpx cypress run
pytest.ini or conftest.py or pyproject.toml with [tool.pytest]pytestpython -m pytest
go.mod existsGo testgo test ./...
Cargo.toml existsRust/cargocargo test
mix.exs existsExUnitmix test
Gemfile with rspecRSpecbundle exec rspec
package.json has scripts.testnpm testnpm 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:

FrameworkCommand
Vitestnpx vitest run <test-file>
Jestnpx jest <test-file>
Playwrightnpx playwright test <test-file>
pytestpython -m pytest <test-file>
Gogo test -run <TestName> ./<package>/
Cargocargo 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
  • describe block per function/class
  • it/test blocks 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.json has both test and test:unit/test:e2e scripts, prefer the specific one when context is clear

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.