Agent Skills: /configure:tests

Check and configure testing frameworks and infrastructure

UncategorizedID: laurigates/claude-plugins/configure-tests

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/configure-plugin/skills/configure-tests

Skill Files

Browse the full folder contents for configure-tests.

Download Skill

Loading file tree…

configure-plugin/skills/configure-tests/SKILL.md

Skill Metadata

Name
configure-tests
Description
Check and configure testing frameworks and infrastructure

/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: !grep -c 'tool.pytest' pyproject.toml
  • Test directories: !find . -maxdepth 2 -type d \( -name 'tests' -o -name '__tests__' -o -name 'test' \)
  • Test scripts in package.json: !grep -m5 -o '"test[^"]*"' package.json
  • Coverage config: !grep -l 'coverage' vitest.config.* jest.config.*
  • 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:

  1. Vitest: Check vitest.dev or GitHub releases
  2. Jest: Check jestjs.io or npm
  3. pytest: Check pytest.org or PyPI
  4. 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.ts or .js)
  • globals: true configured for compatibility
  • environment set appropriately (jsdom, happy-dom, node)
  • Coverage configured with @vitest/coverage-v8 or @vitest/coverage-istanbul
  • Watch mode exclusions configured

Jest:

  • Config file exists (jest.config.js or .ts)
  • testEnvironment configured
  • Coverage configuration present
  • Transform configured for TypeScript/JSX
  • Module path aliases configured

pytest:

  • pyproject.toml has [tool.pytest.ini_options] section
  • testpaths configured
  • addopts includes useful flags (-v, --strict-markers)
  • markers defined for test categorization
  • pytest-cov installed

cargo-nextest:

  • .nextest.toml 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

If --check-only, stop here.

Step 4: Apply fixes (if --fix or user confirms)

Install dependencies and create configuration using templates from REFERENCE.md:

  1. Missing config: Create framework config file from template
  2. Missing dependencies: Install required packages
  3. Missing coverage: Add coverage configuration with 80% threshold
  4. Missing scripts: Add test scripts to package.json
  5. 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