configure-tests

v2026.09.24

Test frameworks: Vitest, Jest, pytest, cargo-nextest. Use when setting up test infrastructure, migrating to a modern framework, or validating coverage config.

GitHub
安装命令
npx skhub add laurigates/configure-tests
Markdown
SKILL.md

/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 infrastructureJust running tests (use /test:run skill)
Checking test framework configurationTests already properly configured
Migrating to modern test frameworks (Vitest, pytest, nextest)Writing individual tests (write tests directly)
Validating coverage configurationDebugging failing tests (check test output)
Ensuring test best practicesSimple 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:

FlagDescription
--check-onlyReport status without offering fixes
--fixApply 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:

IndicatorLanguageDetected Framework
vitest.config.*JavaScript/TypeScriptVitest
jest.config.*JavaScript/TypeScriptJest
pyproject.toml [tool.pytest]Pythonpytest
pytest.iniPythonpytest
Cargo.tomlRustcargo test
.nextest.tomlRustcargo-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

ContextCommand
Detect test frameworkfind . -maxdepth 1 \( -name 'vitest.config.*' -o -name 'jest.config.*' -o -name 'pytest.ini' \) 2>/dev/null
Check coverage configgrep -l 'coverage' package.json pyproject.toml 2>/dev/null
List test filesfind . \( -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
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

MIT

源路径

configure-plugin/skills/configure-tests

默认分支

main

最新提交

1668324

Tree SHA

b2d4cc3