MCPInstall

testgen

Generate tests using AI and run test suites. Use for generating unit tests, running coverage reports, and mutation testing.

Installs
39
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/johnlindquist/claude --skill testgen
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads testgen automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Test Generator

AI-powered test generation and test suite management.

Prerequisites

# Gemini for AI generation
pip install google-generativeai
export GEMINI_API_KEY=your_api_key

# Test runners (install as needed)
npm install -D jest vitest mocha
npm install -D @stryker-mutator/core  # Mutation testing

AI Test Generation

Generate Unit Tests

# Read code and generate tests
CODE=$(cat src/utils.ts)

gemini -m pro -o text -e "" "Generate comprehensive unit tests for this code:

$CODE

Requirements:
1. Use Jest/Vitest syntax
2. Cover happy path, edge cases, and error conditions
3. Include descriptive test names
4. Mock external dependencies
5. Test each exported function

Output only the test code, ready to save to a file."

Generate Tests for Specific Function

gemini -m pro -o text -e "" "Generate unit tests for this function:

\`\`\`typescript
export function calculateDiscount(price: number, percentage: number): number {
  if (percentage < 0 || percentage > 100) {
    throw new Error('Invalid percentage');
  }
  return price * (1 - percentage / 100);
}
\`\`\`

Include tests for:
- Valid inputs
- Boundary values (0%, 100%)
- Invalid inputs (negative, >100)
- Edge cases (zero price)

Use Jest syntax."

TDD Loop

# 1. Write failing test first
gemini -m pro -o text -e "" "Write a failing test for: [feature description]"

# 2. Run test (should fail)
npm test -- --watch

# 3. Implement minimal code to pass

# 4. Refactor

# 5. Repeat

Test Runners

Jest

# Run all tests
npx jest

# Watch mode
npx jest --watch

# Specific file
npx jest src/utils.test.ts

# With coverage
npx jest --coverage

# Update snapshots
npx jest -u

# Verbose output
npx jest --verbose

# Run matching pattern
npx jest -t "should calculate"

Vitest

# Run tests
npx vitest

# Watch mode
npx vitest --watch

# Run once
npx vitest run

# Coverage
npx vitest --coverage

# UI mode
npx vitest --ui

# Specific file
npx vitest src/utils.test.ts

Mocha

# Run tests
npx mocha

# Watch mode
npx mocha --watch

# Specific file
npx mocha test/utils.test.js

# With reporter
npx mocha --reporter spec

Coverage Analysis

Generate Coverage Report

# Jest
npx jest --coverage --coverageReporters=text --coverageReporters=html

# Vitest
npx vitest run --coverage

# View HTML report
open coverage/index.html

Coverage Thresholds

// jest.config.js or vitest.config.ts
{
  "coverageThreshold": {
    "global": {
      "branches": 80,
      "functions": 80,
      "lines": 80,
      "statements": 80
    }
  }
}

Find Uncovered Code

# Text coverage report
npx jest --coverage --coverageReporters=text

# Ask AI for suggestions
UNCOVERED=$(npx jest --coverage --coverageReporters=json --silent | jq '.coverageMap')
gemini -m pro -o text -e "" "Given this coverage report, suggest tests for uncovered code:

$UNCOVERED"

Mutation Testing

Test the tests themselves using Stryker:

# Check if installed
npx stryker --version

# Initialize
npx stryker init

# Run mutation testing
npx stryker run

# With reporters
npx stryker run --reporters clear-text,json,html

Interpret Results

  • Killed mutants: Tests caught the bug (good)
  • Survived mutants: Tests missed the bug (need more tests)
  • Timeout mutants: Mutant caused infinite loop
  • No coverage: Code not covered by any test

Workflow Patterns

New Feature Testing

# 1. Generate test scaffold
CODE=$(cat src/new-feature.ts)
gemini -m pro -o text -e "" "Generate test file scaffold for: $CODE" > src/new-feature.test.ts

# 2. Run tests (should fail)
npx jest src/new-feature.test.ts

# 3. Implement feature
# 4. Run tests (should pass)
# 5. Add edge case tests
# 6. Check coverage
npx jest src/new-feature.test.ts --coverage

Regression Test Generation

# After fixing a bug, generate regression test
BUG_DESC="Users could submit empty forms"
FIX=$(git diff HEAD~1)

gemini -m pro -o text -e "" "Generate a regression test for this bug fix:

Bug: $BUG_DESC

Fix:
$FIX

The test should fail if the bug is reintroduced."

Integration Test Generation

gemini -m pro -o text -e "" "Generate integration tests for this API endpoint:

\`\`\`typescript
// POST /api/users
// Body: { name: string, email: string }
// Response: { id: string, name: string, email: string }
\`\`\`

Include:
- Success case
- Validation errors
- Duplicate email handling
- Authentication required

Use supertest or similar."

Best Practices

  1. Test behavior, not implementation - Focus on what, not how
  2. One assertion per test - When practical
  3. Descriptive names - Should document what's tested
  4. Arrange-Act-Assert - Clear test structure
  5. Mock external deps - Isolate unit under test
  6. Run tests in CI - Automated verification
  7. Maintain coverage - Don't let it drop
  8. Use mutation testing - Verify test quality

FAQ

What does the testgen skill do?

Generate tests using AI and run test suites. Use for generating unit tests, running coverage reports, and mutation testing.

How do I install testgen?

Run npx skills add https://github.com/johnlindquist/claude --skill testgen in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/testgen/ (personal) or .claude/skills/testgen/ (project).

Which AI agents can use testgen?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is testgen safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains testgen?

It is published by johnlindquist in johnlindquist/claude. It has 39 recorded installs.

More from johnlindquist/claude

View all →

gemini-image

johnlindquist/claude

Analyze images using Gemini's vision capabilities. Use for image analysis, text extraction from screenshots, and visual content understanding.

Media & Creative1.2K installs

memory

johnlindquist/claude

Open the skill to read its SKILL.md instructions.

362 installs

raycast-extension

johnlindquist/claude

Open the skill to read its SKILL.md instructions.

321 installs

brainstorm

johnlindquist/claude

Open the skill to read its SKILL.md instructions.

deepwiki

johnlindquist/claude

Open the skill to read its SKILL.md instructions.

269 installs

think

johnlindquist/claude

Open the skill to read its SKILL.md instructions.

258 installs

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs