cli-e2e-test-harness

Set up E2E test harness for CLI applications with process spawning and assertions.

509 stars

Best use case

cli-e2e-test-harness is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Set up E2E test harness for CLI applications with process spawning and assertions.

Teams using cli-e2e-test-harness should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/cli-e2e-test-harness/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/cli-mcp-development/skills/cli-e2e-test-harness/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/cli-e2e-test-harness/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How cli-e2e-test-harness Compares

Feature / Agentcli-e2e-test-harnessStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Set up E2E test harness for CLI applications with process spawning and assertions.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# CLI E2E Test Harness

Set up E2E test harness for CLI applications.

## Generated Patterns

```typescript
import { spawn, SpawnOptions } from 'child_process';

interface CLIResult {
  stdout: string;
  stderr: string;
  exitCode: number | null;
}

export async function runCLI(args: string[], options?: SpawnOptions): Promise<CLIResult> {
  return new Promise((resolve) => {
    const proc = spawn('node', ['./dist/index.js', ...args], {
      env: { ...process.env, NO_COLOR: '1' },
      ...options,
    });

    let stdout = '';
    let stderr = '';

    proc.stdout?.on('data', (data) => { stdout += data; });
    proc.stderr?.on('data', (data) => { stderr += data; });

    proc.on('close', (exitCode) => {
      resolve({ stdout, stderr, exitCode });
    });
  });
}

export function expectOutput(result: CLIResult) {
  return {
    toContain: (text: string) => expect(result.stdout).toContain(text),
    toMatchSnapshot: () => expect(result.stdout).toMatchSnapshot(),
    toExitWith: (code: number) => expect(result.exitCode).toBe(code),
  };
}
```

## Target Processes

- cli-unit-integration-testing
- mcp-server-testing-suite

Related Skills

vitest

509
from a5c-ai/babysitter

Vitest configuration, mocking, coverage, snapshot testing, and performance.

react-testing-library

509
from a5c-ai/babysitter

React Testing Library patterns, queries, user events, and accessibility testing.

load-test-generator

509
from a5c-ai/babysitter

Generate load test scripts for k6, Locust, and Gatling from OpenAPI specs

cloud-security-testing

509
from a5c-ai/babysitter

Multi-cloud security assessment and penetration testing capabilities. Execute Prowler/ScoutSuite assessments, analyze IAM policies, identify cloud misconfigurations, test permissions, and enumerate cloud resources across AWS/GCP/Azure.

contract-test-framework

509
from a5c-ai/babysitter

Consumer-driven contract testing for SDK-API compatibility. Generate Pact consumer tests, verify provider contracts, configure Pact broker, and implement can-i-deploy checks.

compatibility-test-matrix

509
from a5c-ai/babysitter

Multi-version, multi-platform SDK compatibility testing

test-data-generation

509
from a5c-ai/babysitter

Synthetic test data generation and management using Faker.js and similar tools. Generate realistic test data, create data factories, implement database seeding, and manage test data anonymization.

Stryker Mutation Testing

509
from a5c-ai/babysitter

Stryker mutation testing for assessing test suite quality and effectiveness

pytest Testing

509
from a5c-ai/babysitter

Expert pytest framework for Python unit, integration, and functional testing

Playwright E2E Testing

509
from a5c-ai/babysitter

Deep integration with Playwright for browser automation and end-to-end testing

Percy Visual Testing

509
from a5c-ai/babysitter

Percy visual testing platform integration for visual regression detection

pact-contract-testing

509
from a5c-ai/babysitter

Consumer-driven contract testing with Pact framework. Generate consumer contracts, configure Pact Broker publishing, execute provider verification, detect breaking changes, and integrate with CI/CD pipelines.