AgentSkillsCN

test

自动识别项目类型,并运行相应的测试套件。适用于执行测试、检查测试覆盖率,或验证代码变更时使用。

SKILL.md
--- frontmatter
name: test
description: Auto-detect project type and run appropriate test suite. Use when running tests, checking test coverage, or validating code changes.
argument-hint: [test-type] [path]
allowed-tools: Bash, Read, Glob, Grep

Universal Test Runner

Run tests for any project by auto-detecting the project type and test framework.

Arguments

  • $0 (optional): Test type - unit, integration, e2e, all (default: all)
  • $1 (optional): Specific path or pattern to test

Detection Logic

  1. Check for Python project (pytest):

    • Look for pytest.ini, pyproject.toml with pytest config, or conftest.py
    • Check for uv.lock (use uv run pytest) or requirements.txt (use pytest)
  2. Check for JavaScript/TypeScript project:

    • Look for package.json with test scripts
    • Detect test runner: Jest, Vitest, Playwright, Cypress

Execution Steps

For Python Projects (FastAPI, automation suites)

bash
# Check if uv is used
if [ -f "uv.lock" ]; then
    uv run pytest $PATH -v --tb=short
else
    pytest $PATH -v --tb=short
fi

Test type flags:

  • unit: -m "unit or not (integration or e2e)"
  • integration: -m "integration"
  • e2e: -m "e2e"
  • all: No marker filter

Parallel execution (if pytest-xdist installed):

bash
pytest -n auto $PATH

For JavaScript/TypeScript Projects

Jest/Vitest:

bash
npm test -- $PATH
# or for coverage
npm test -- --coverage

Playwright E2E:

bash
npx playwright test $PATH
# or with UI
npx playwright test --ui

Cypress:

bash
npx cypress run
# or interactive
npx cypress open

Coverage Reports

After running tests, check for coverage:

  • Python: Look for htmlcov/index.html or .coverage file
  • JavaScript: Look for coverage/lcov-report/index.html

Report coverage percentage to the user.

Common Patterns in User's Projects

ProjectFrameworkCommand
eruditiontx-services-mvppytest + asynciouv run pytest -n auto
mathmatterstx-servicespytestuv run pytest
eruditiontx-client-mvpJest + Vitestnpm test
erudition-math-v2Jest + Playwrightnpm test / npm run test:e2e
notaryo.phJest + Playwrightpnpm test
bocs-turboJest + Cypresspnpm test

Output Format

code
Running tests for: [project-name]
Framework detected: [pytest/jest/playwright]
Test type: [unit/integration/e2e/all]

[Test output]

Summary:
- Passed: X
- Failed: Y
- Skipped: Z
- Coverage: XX%