test-focus

v2026.09.24

One test file, fail-fast — Playwright, Vitest, Jest, pytest, cargo, go test. Use when running a single spec file, headed/debug mode, or serial single-worker WebGL tests.

GitHub
Install command
npx skhub add laurigates/test-focus
Markdown
SKILL.md

When to Use This Skill

Use this skill when...Use test-run instead when...
Iterating on a single failing spec with fail-fast feedbackRunning the full test suite for a project
Forcing serial execution for WebGL or shared-state testsRunning tests in watch mode across many files (use test-quick)
Running one test file in headed/debug modeTriaging a directory of test results (use test-analyze)
Sub-30s feedback on a known-broken fileChoosing which tier to run (use test-tier-selection)

Context

  • Project files: !find . -maxdepth 1 \( -name 'pyproject.toml' -o -name 'package.json' -o -name 'Cargo.toml' -o -name 'go.mod' \)
  • Playwright config: !find . -maxdepth 1 -name 'playwright.config.*'
  • Vitest config: !find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'vite.config.*' \)
  • Jest config: !find . -maxdepth 1 -name 'jest.config.*'
  • Pytest config: !find . -maxdepth 1 \( -name pyproject.toml -o -name setup.cfg \) -exec grep -l 'pytest' {} +
  • Package.json exists: !find . -maxdepth 1 -name 'package.json' -type f

Parameters

  • $1 (required): Test file path or pattern (e.g., login.spec.ts, tests/e2e/auth.spec.ts)
  • --serial: Force sequential execution with single worker (useful for WebGL, database tests)
  • --debug: Run in debug/headed mode for visual debugging

Your task

Run a single test file in fail-fast mode for rapid development iteration. Stop immediately on first failure to minimize feedback time.

1. Detect test framework and construct command

Playwright (if playwright.config.* exists):

# Standard fail-fast
bunx playwright test "$FILE" --max-failures=1 --reporter=line

# With --serial (WebGL, shared state)
bunx playwright test "$FILE" --max-failures=1 --workers=1 --reporter=line

# With --debug
bunx playwright test "$FILE" --max-failures=1 --headed --debug

Vitest (if vitest.config.* or vite.config.* exists):

# Standard fail-fast
bunx vitest run "$FILE" --bail=1 --reporter=dot

# With --serial
bunx vitest run "$FILE" --bail=1 --pool=forks --poolOptions.threads.singleThread --reporter=dot

# With --debug
bunx vitest run "$FILE" --bail=1 --inspect-brk

Jest (if jest.config.* exists):

# Standard fail-fast
bunx jest "$FILE" --bail --silent

# With --serial
bunx jest "$FILE" --bail --runInBand --silent

# With --debug
bunx jest "$FILE" --bail --runInBand

pytest (Python projects):

# Standard fail-fast
python -m pytest "$FILE" -x -v --tb=short

# With --serial (already serial by default)
python -m pytest "$FILE" -x -v --tb=short

# With --debug
python -m pytest "$FILE" -x -v --tb=long -s

Cargo test (Rust projects):

# Standard fail-fast
cargo test --test "$FILE" -- --test-threads=1

# With --debug
cargo test --test "$FILE" -- --test-threads=1 --nocapture

Go test:

# Standard fail-fast
go test -v -failfast "$FILE"

# With --debug
go test -v -failfast "$FILE" -count=1

2. Execute the test

Run the constructed command. Capture and display output.

3. Analyze results

If the test passes:

[FILE]: PASSED
Duration: Xs

Ready for next iteration or file.

If the test fails:

[FILE]: FAILED (stopped at first failure)
Duration: Xs

First failure:
  Test: [test name]
  Error: [brief error message]
  Location: [file:line]

Quick actions:
- Fix the issue and re-run: /test:focus [same file]
- Debug visually: /test:focus [file] --debug
- See full output: /test:run [file]

4. Provide rerun command

Always show the exact command to rerun:

Rerun: /test:focus $FILE

Time savings context

Focused testing dramatically reduces feedback time:

ApproachTypical DurationUse Case
/test:focus2-30 secondsIterating on single file
/test:quick30 secondsUnit tests after changes
/test:full5-30 minutesBefore commit/PR

Agentic optimizations

ContextFlags
Playwright fast--max-failures=1 --reporter=line
Playwright WebGL--max-failures=1 --workers=1 --reporter=line
Vitest fast--bail=1 --reporter=dot
Jest fast--bail --silent
pytest fast-x -v --tb=short

Error handling

  • If file not found: List similar test files with glob and suggest corrections
  • If framework not detected: Show available package.json scripts containing "test"
  • If test times out: Suggest --serial flag or increasing timeout
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

testing-plugin/skills/test-focus

Default branch

main

Latest commit

1668324

Tree SHA

b2d4cc3