About configure-tests
A skill for checking and configuring test frameworks in JavaScript, Python, and Rust projects. It detects existing setup, reports gaps against stated practices, and can apply configuration changes when requested.
Key features
- 01Detect Vitest, Jest, pytest, and nextest
- 02Check framework and coverage configuration
- 03Review test organization and scripts
- 04Offer configuration fixes and migrations
- 05Check CI test integration
Use cases
- 01Set up testing infrastructure in a project
- 02Check a framework configuration for gaps
- 03Migrate to a modern testing framework
- 04Add test commands to CI workflows
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-testsAfter installing, type/configure-testsin Claude Code to confirm it loaded.
Bundled filesREFERENCE.md
Details
From the project README/configure:tests
Check and configure testing frameworks against best practices (Vitest, Jest, pytest, cargo-nextest).
When to Use This Skill
| Use this skill when... | Use another approach when... |
|---|---|
| Setting up testing infrastructure | Just running tests (use /test:run skill) |
| Checking test framework configuration | Tests already properly configured |
| Migrating to modern test frameworks (Vitest, pytest, nextest) | Writing individual tests (write tests directly) |
| Validating coverage configuration | Debugging failing tests (check test output) |
| Ensuring test best practices | Simple project with no testing needed |
Context
- Package.json: !
find . -maxdepth 1 -name \'package.json\' - Pyproject.toml: !
find . -maxdepth 1 -name \'pyproject.toml\' - Cargo.toml: !
find . -maxdepth 1 -name \'Cargo.toml\' - Test config files: !
find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' -o -name '.nextest.toml' \) - Pytest in pyproject: !
find . -maxdepth 1 -name 'pyproject.toml' -exec grep -c 'tool.pytest' {} + - Test directories: !
find . -maxdepth 2 -type d \( -name 'tests' -o -name '__tests__' -o -name 'test' \) - Test scripts in package.json: !
find . -maxdepth 1 -name 'package.json' -exec grep -m5 -o '"test[^"]*"' {} + - Coverage config: !
find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' \) -exec grep -l 'coverage' {} + - Project standards: !
find . -maxdepth 1 -name '.project-standards.yaml' -type f
Modern testing stack preferences:
- JavaScript/TypeScript: Vitest (preferred) or Jest
- Python: pytest with pytest-cov
- Rust: cargo-nextest for improved performance
Parameters
Parse these from $ARGUMENTS:
| Flag | Description |
|---|---|
--check-only | Report status without offering fixes |
--fix | Apply all fixes automatically without prompting |
--framework <framework> | Override framework detection (vitest, jest, pytest, nextest) |
Version Checking
CRITICAL: Before flagging outdated versions, verify latest releases:
- Vitest: Check vitest.dev or GitHub releases
- Jest: Check jestjs.io or npm
- pytest: Check pytest.org or PyPI
- cargo-nextest: Check nexte.st or GitHub releases
Use WebSearch or WebFetch to verify current versions before reporting outdated frameworks.
Execution
Execute this testing framework compliance check:
Step 1: Detect framework
Identify the project language and existing test framework:
| Indicator | Language | Detected Framework |
|---|---|---|
vitest.config.* | JavaScript/TypeScript | Vitest |
jest.config.* | JavaScript/TypeScript | Jest |
pyproject.toml [tool.pytest] | Python | pytest |
pytest.ini | Python | pytest |
Cargo.toml | Rust | cargo test |
.nextest.toml | Rust | cargo-nextest |
If --framework flag is provided, use that value instead.
Step 2: Analyze current state
Read the detected framework's configuration and check completeness. For each framework, verify:
Vitest:
- Config file exists (
vitest.config.tsor.js) globals: trueconfigured for compatibilityenvironmentset appropriately (jsdom, happy-dom, node)- Coverage configured with
@vitest/coverage-v8or@vitest/coverage-istanbul - Watch mode exclusions configured
Jest:
- Config file exists (
jest.config.jsor.ts) testEnvironmentconfigured- Coverage configuration present
- Transform configured for TypeScript/JSX
- Module path aliases configured
pytest:
pyproject.tomlhas[tool.pytest.ini_options]sectiontestpathsconfiguredaddoptsincludes useful flags (-v,--strict-markers)markersdefined for test categorizationpytest-covinstalled
cargo-nextest:
.nextest.tomlexists- Profile configurations (default, ci)
- Retry policy configured
- Test groups defined if needed
Step 3: Report results
Print a compliance report with:
- Detected framework and version
- Configuration check results for each item
- Test organization (unit/integration/e2e directories)
- Package scripts status (test, test:watch, test:coverage)
- Overall issue count and recommendations
If --check-only, stop here.
Step 4: Apply fixes (if --fix or user confirms)
Install dependencies and create configuration using templates from REFERENCE.md:
- Missing config: Create framework config file from template
- Missing dependencies: Install required packages
- Missing coverage: Add coverage configuration with 80% threshold
- Missing scripts: Add test scripts to package.json
- Missing test directories: Create standard test directory structure
Step 5: Set up test organization
Create standard test directory structure for the detected language. See directory structure patterns in REFERENCE.md.
Step 6: Configure CI/CD integration
Check for test commands in GitHub Actions workflows. If missing, add CI test commands using the CI templates from REFERENCE.md.
Step 7: Handle migration (if upgrading)
If migrating between frameworks (e.g., Jest to Vitest, unittest to pytest), follow the migration guide in REFERENCE.md.
Step 8: Update standards tracking
Update .project-standards.yaml:
standards_version: "2025.1"
last_configured: "<timestamp>"
components:
tests: "2025.1"
tests_framework: "<vitest|jest|pytest|nextest>"
tests_coverage_threshold: 80
tests_ci_integrated: true
For detailed configuration templates, migration guides, CI/CD integration examples, and directory structure patterns, see REFERENCE.md.
Agentic Optimizations
| Context | Command |
|---|---|
| Detect test framework | find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' \) 2>/dev/null |
| Check coverage config | grep -l 'coverage' package.json pyproject.toml 2>/dev/null |
| List test files | find . \( -path '*/tests/*' -o -path '*/test/*' -o -name '*.test.*' -o -name '*.spec.*' \) 2>/dev/null | head -n 10 |
| Quick compliance check | /configure:tests --check-only |
| Auto-fix configuration | /configure:tests --fix |
Error Handling
- No package.json found: Cannot configure JS/TS tests, skip or error
- Conflicting frameworks: Warn about multiple test configs, require manual resolution
- Missing dependencies: Offer to install required packages
- Invalid config syntax: Report parse error, offer to replace with template
See Also
/configure:coverage- Configure coverage thresholds and reporting/configure:all- Run all compliance checks/test:run- Universal test runner/test:setup- Comprehensive testing infrastructure setup- Vitest documentation: https://vitest.dev
- pytest documentation: https://docs.pytest.org
- cargo-nextest documentation: https://nexte.st