/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 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\' 2>/dev/null
- Pyproject.toml: !
find . -maxdepth 1 -name \'pyproject.toml\' 2>/dev/null
- Cargo.toml: !
find . -maxdepth 1 -name \'Cargo.toml\' 2>/dev/null
- Test config files: !
find . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' -o -name '.nextest.toml' \) 2>/dev/null
- Pytest in pyproject: !
grep -c 'tool.pytest' pyproject.toml 2>/dev/null
- Test directories: !
find . -maxdepth 2 -type d \( -name 'tests' -o -name '__tests__' -o -name 'test' \) 2>/dev/null
- Test scripts in package.json: !
grep -m5 -o '"test[^"]*"' package.json 2>/dev/null
- Coverage config: !
grep -l 'coverage' vitest.config.* jest.config.* 2>/dev/null
- Project standards: !
head -20 .project-standards.yaml 2>/dev/null
Modern testing stack preferences:
- JavaScript/TypeScript: Vitest (preferred) or Jest
- Python: pytest with pytest-cov
- Rust: cargo-nextest for improved performance
Parameters
| Flag | Description |
|---|
| Report status without offering fixes |
| Apply all fixes automatically without prompting |
| Override framework detection (, , , ) |
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 |
|---|
| JavaScript/TypeScript | Vitest |
| JavaScript/TypeScript | Jest |
| [tool.pytest] | Python | pytest |
| Python | pytest |
| Rust | cargo test |
| Rust | cargo-nextest |
If
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 ( or )
- configured for compatibility
- set appropriately (jsdom, happy-dom, node)
- Coverage configured with or
@vitest/coverage-istanbul
- Watch mode exclusions configured
Jest:
- Config file exists ( or )
- configured
- Coverage configuration present
- Transform configured for TypeScript/JSX
- Module path aliases configured
pytest:
- has
[tool.pytest.ini_options]
section
- configured
- includes useful flags (, )
- defined for test categorization
- installed
cargo-nextest:
- exists
- 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
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
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 | |
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 thresholds and reporting
- - Run all compliance checks
- - Universal test runner
- - Comprehensive testing infrastructure setup
- Vitest documentation: https://vitest.dev
- pytest documentation: https://docs.pytest.org
- cargo-nextest documentation: https://nexte.st