Tdd Guide
Scanned@alirezarezvani
npx machina-cli add skill @alirezarezvani/tdd-guide --openclawTDD Guide
Test-driven development skill for generating tests, analyzing coverage, and guiding red-green-refactor workflows across Jest, Pytest, JUnit, and Vitest.
Table of Contents
Capabilities
| Capability | Description |
|---|---|
| Test Generation | Convert requirements or code into test cases with proper structure |
| Coverage Analysis | Parse LCOV/JSON/XML reports, identify gaps, prioritize fixes |
| TDD Workflow | Guide red-green-refactor cycles with validation |
| Framework Adapters | Generate tests for Jest, Pytest, JUnit, Vitest, Mocha |
| Quality Scoring | Assess test isolation, assertions, naming, detect test smells |
| Fixture Generation | Create realistic test data, mocks, and factories |
Workflows
Generate Tests from Code
- Provide source code (TypeScript, JavaScript, Python, Java)
- Specify target framework (Jest, Pytest, JUnit, Vitest)
- Run
test_generator.pywith requirements - Review generated test stubs
- Validation: Tests compile and cover happy path, error cases, edge cases
Analyze Coverage Gaps
- Generate coverage report from test runner (
npm test -- --coverage) - Run
coverage_analyzer.pyon LCOV/JSON/XML report - Review prioritized gaps (P0/P1/P2)
- Generate missing tests for uncovered paths
- Validation: Coverage meets target threshold (typically 80%+)
TDD New Feature
- Write failing test first (RED)
- Run
tdd_workflow.py --phase redto validate - Implement minimal code to pass (GREEN)
- Run
tdd_workflow.py --phase greento validate - Refactor while keeping tests green (REFACTOR)
- Validation: All tests pass after each cycle
Tools
| Tool | Purpose | Usage |
|---|---|---|
test_generator.py | Generate test cases from code/requirements | python scripts/test_generator.py --input source.py --framework pytest |
coverage_analyzer.py | Parse and analyze coverage reports | python scripts/coverage_analyzer.py --report lcov.info --threshold 80 |
tdd_workflow.py | Guide red-green-refactor cycles | python scripts/tdd_workflow.py --phase red --test test_auth.py |
framework_adapter.py | Convert tests between frameworks | python scripts/framework_adapter.py --from jest --to pytest |
fixture_generator.py | Generate test data and mocks | python scripts/fixture_generator.py --entity User --count 5 |
metrics_calculator.py | Calculate test quality metrics | python scripts/metrics_calculator.py --tests tests/ |
format_detector.py | Detect language and framework | python scripts/format_detector.py --file source.ts |
output_formatter.py | Format output for CLI/desktop/CI | python scripts/output_formatter.py --format markdown |
Input Requirements
For Test Generation:
- Source code (file path or pasted content)
- Target framework (Jest, Pytest, JUnit, Vitest)
- Coverage scope (unit, integration, edge cases)
For Coverage Analysis:
- Coverage report file (LCOV, JSON, or XML format)
- Optional: Source code for context
- Optional: Target threshold percentage
For TDD Workflow:
- Feature requirements or user story
- Current phase (RED, GREEN, REFACTOR)
- Test code and implementation status
Limitations
| Scope | Details |
|---|---|
| Unit test focus | Integration and E2E tests require different patterns |
| Static analysis | Cannot execute tests or measure runtime behavior |
| Language support | Best for TypeScript, JavaScript, Python, Java |
| Report formats | LCOV, JSON, XML only; other formats need conversion |
| Generated tests | Provide scaffolding; require human review for complex logic |
When to use other tools:
- E2E testing: Playwright, Cypress, Selenium
- Performance testing: k6, JMeter, Locust
- Security testing: OWASP ZAP, Burp Suite
Overview
Guides test-driven development across Jest, Pytest, JUnit, and Vitest by generating tests, analyzing coverage, and steering red-green-refactor cycles. Includes fixture generation, quality scoring, and framework adapters to streamline TDD workflows.
How This Skill Works
The skill coordinates several scripts to cover the TDD lifecycle: generate tests from code with test_generator.py, analyze coverage with coverage_analyzer.py, and guide red-green-refactor cycles via tdd_workflow.py. Framework adapters and fixture generators help convert tests between frameworks and produce realistic data without runtime execution.
When to Use It
- When you have requirements or source code and need automatic test generation for a specific framework
- When you need to analyze a coverage report (LCOV/JSON/XML) and prioritize gaps
- When adopting a TDD workflow to add a new feature using red-green-refactor cycles
- When migrating or converting tests between Jest, Pytest, JUnit, Vitest, or Mocha
- When you want to assess and improve test quality with metrics like isolation, assertions, and naming
Quick Start
- Step 1: Provide source code and target framework, then run python scripts/test_generator.py --input <source> --framework <jest|pytest|junit|vitest>
- Step 2: Generate and review coverage with python scripts/coverage_analyzer.py --report <lcov.info> --threshold 80
- Step 3: Run the TDD cycle with python scripts/tdd_workflow.py --phase red --test <test_name>
Best Practices
- Start each feature by writing a failing test (RED) before implementing code
- Run coverage analysis early and target uncovered paths
- Keep tests isolated, deterministic, and easy to read
- Refactor tests and code together while keeping all tests green
- Use fixture_generator to craft realistic test data and mocks
Example Use Cases
- Generate Jest tests from a TypeScript service class based on requirements
- Analyze a Pytest project’s coverage report and fill LCOV gaps
- Drive a RED-GREEN-REFACTOR cycle for a new feature in Java with JUnit
- Convert tests from Jest to Pytest using framework_adapter.py
- Create mocked data with fixture_generator for a User entity in tests