К основному содержанию
скилл CX Codex

test-automator — скилл для Claude Code: тесты и покрытие

Помогает писать юнит-, интеграционные и E2E-тесты, поднимать фреймворк и считать покрытие. Пригодится, когда тестов в проекте мало или они разъехались.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add zhaono1/agent-playbook --skill test-automator -a claude-code
Открыть на GitHub

Что делает test-automator

Скилл включается, когда вы просите написать тесты, упоминаете автоматизацию тестирования или хотите поднять покрытие. Внутри — пирамида тестирования с примерами на Jest, Supertest и Playwright, правила именования тестов и список того, чего делать не стоит: не тестировать детали реализации, не трогать сторонние библиотеки, не коммитить закомментированные тесты.

Кроме примеров есть два скрипта. scripts/generate_test.py собирает заготовку по имени фичи, scripts/coverage_report.py готовит отчёт по имени сервиса. Оба запускаются через python3, поэтому Python в системе нужен заранее — без него эти шаги просто не отработают. Целевые ориентиры по покрытию скилл задаёт таблицей: строки и функции выше 80%, ветки выше 75%.

В метаданных прописан хук after_complete с триггером session-logger в режиме auto — он пишет лог создания тестов. Если у вас уже есть свой логгер сессий, это повод проверить, не будут ли они дублировать записи.

Какие задачи решает

  • написать юнит-тесты на новый сервис
  • поднять интеграционные тесты для HTTP-роутов
  • описать E2E-сценарий логина в Playwright
  • посчитать покрытие и увидеть отчёт по веткам
  • выбрать фреймворк и команду запуска под язык проекта

Примеры запросов агенту

  • напиши тесты на UserService, покрой создание и валидацию email
  • добавь интеграционный тест на POST /api/users
  • посчитай покрытие проекта и покажи, где не хватает веток

Как установить test-automator

1Через Skills CLI (Vercel)

npx skills add zhaono1/agent-playbook --skill test-automator -a claude-code

2Вручную: положить файлы

~/.claude/skills/test-automator/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/test-automator/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора18

architecting-solutions Скилл помогает спроектировать техническую архитектуру фичи или рефакторинга и сохраняет готовый документ в папку docs. Применяется, когда задача не требует составления PRD. CX Codex +1 906установок skill-router Разбирает запрос и предлагает самый узкий подходящий скилл из каталога. Пригодится, когда непонятно, какой инструмент взять под задачу. CX Codex +1 873установок workflow-orchestrator Скилл ловит момент, когда другой скилл закончил работу, и решает, что запускать дальше: логирование сессии, разбор ошибок или захват кандидата на самоулучшение. CX Codex +1 833установок prd-planner Ведёт создание PRD и технического дизайна через четыре файла в docs/, чтобы агент не терял контекст между шагами. CX Codex +1 829установок qa-expert Скилл для планирования тестового покрытия и настройки quality gates. Пригодится, когда нужно разложить проверки по уровням риска и стадиям CI. CX Codex +1 753установок refactoring-specialist Скилл ведёт агента по шагам рефакторинга: находит запахи кода, предлагает технику и следит, чтобы тесты остались зелёными. CX Codex +1 747установок debugger Скилл ведёт агента по методике отладки: воспроизвести баг, сузить область, найти причину, починить и закрыть регрессионным тестом. CX Codex +1 745установок session-logger Сохраняет короткую сводку разговора с агентом: что решили, какие файлы трогали, что осталось открытым. Пригодится, когда нужно вернуться к работе позже. CX Codex +1 743установок

Похожие

codebase-cleanup-test-automator Seth Hobson Субагент-тестировщик: ведёт TDD-цикл, генерирует тесты и подключает их к CI. Пригодится, когда тестов мало или они падают без причины. CX Codex ★ 41 729звёзд репо api-test-suite-generator patricio0312rev Скилл сканирует определения маршрутов и генерирует тесты API на Jest, Vitest или Supertest. Пригодится, когда эндпоинты уже есть, а тестов к ним нет. CX Codex +1 303установок test-coverage cognitedata Скилл находит пробелы в покрытии тестами приложения на Flows и закрывает их: настраивает инструменты, пишет недостающие тесты, правит код ради тестируемости. CX Codex +1 1 900установок ai-test-generation kindlmann Пошаговый пайплайн для генерации тестов из спецификаций, диффов или OpenAPI. Помогает избежать выдуманных API и пустых проверок. CX Codex +1 1 200установок coverage Alireza Rezvani Скилл ищет пробелы в тестах, связывает маршруты, компоненты и API с существующими проверками. Пригодится перед планированием новых тестов. 1 645установок migrate-to-rstest rstackjs Переносит тесты из Jest, Vitest или Playwright Test в Rstest, сохраняя обнаружение, ассерты, моки, снапшоты и покрытие. Пригодится, когда надо переехать без переписывания сценариев. CX Codex +1 420установок

Рядом в теме «Тесты и QA»

Всё по теме «Тесты и QA» →

Вопросы о test-automator

Как установить test-automator в Claude?

Одной командой: npx skills add zhaono1/agent-playbook --skill test-automator -a claude-code. После неё скилл окажется в ~/.claude/skills/test-automator/SKILL.md.

Что делает test-automator?

Помогает создавать и поддерживать автотесты: подсказывает структуру по пирамиде тестирования, даёт примеры для Jest, Supertest и Playwright, считает покрытие и генерирует заготовки тестов скриптами.

Что нужно для работы скриптов скилла?

scripts/generate_test.py и scripts/coverage_report.py запускаются через python3, так что Python должен быть установлен. Остальные материалы — это справочники и примеры, они ничего не запускают.

Исходный текст

SKILL.md · MIT
---
name: test-automator
description: Test automation framework expert for creating and maintaining automated tests. Use when user asks to write tests, automate testing, or improve test coverage.
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
metadata:
  hooks:
    after_complete:
      - trigger: session-logger
        mode: auto
        reason: "Log test creation"
---

# Test Automator

Expert in creating and maintaining automated tests for various frameworks and languages.

## When This Skill Activates

Activates when you:
- Ask to write tests
- Mention test automation
- Request test coverage improvement
- Need to set up testing framework

## Testing Pyramid

```
        /\
       /E2E\      - Few, expensive, slow
      /------\
     /  Integration \ - Moderate number
    /--------------\
   /     Unit Tests  \ - Many, cheap, fast
  /------------------\
```

## Unit Testing

### Principles
1. **Test behavior, not implementation**
2. **One assertion per test** (generally)
3. **Arrange-Act-Assert** pattern
4. **Descriptive test names**

### Example (Jest)

```typescript
describe('UserService', () => {
  describe('createUser', () => {
    it('should create a user with valid data', async () => {
      // Arrange
      const userData = {
        name: 'John Doe',
        email: '[email protected]'
      };

      // Act
      const user = await userService.create(userData);

      // Assert
      expect(user.id).toBeDefined();
      expect(user.email).toBe(userData.email);
    });

    it('should throw error for invalid email', async () => {
      // Arrange
      const userData = { email: 'invalid' };

      // Act & Assert
      await expect(userService.create(userData))
        .rejects.toThrow('Invalid email');
    });
  });
});
```

## Integration Testing

### Principles
1. **Test component interactions**
2. **Use test doubles for external services**
3. **Clean up test data**
4. **Run in isolation**

### Example (Supertest)

```typescript
describe('POST /api/users', () => {
  it('should create a user', async () => {
    const response = await request(app)
      .post('/api/users')
      .send({
        name: 'John Doe',
        email: '[email protected]'
      })
      .expect(201)
      .expect((res) => {
        expect(res.body.id).toBeDefined();
        expect(res.body.email).toBe('[email protected]');
      });
  });
});
```

## E2E Testing

### Principles
1. **Test critical user flows**
2. **Use realistic test data**
3. **Handle async operations properly**
4. **Clean up after tests**

### Example (Playwright)

```typescript
test('user can login', async ({ page }) => {
  await page.goto('/login');
  await page.fill('[name="email"]', '[email protected]');
  await page.fill('[name="password"]', 'password123');
  await page.click('button[type="submit"]');

  await expect(page).toHaveURL('/dashboard');
  await expect(page.locator('h1')).toContainText('Welcome');
});
```

## Test Coverage

### Coverage Goals

| Type | Target |
|------|--------|
| Lines | > 80% |
| Branches | > 75% |
| Functions | > 80% |
| Statements | > 80% |

### Coverage Reports

```bash
# Jest
npm test -- --coverage

# Python (pytest-cov)
pytest --cov=src --cov-report=html

# Go
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
```

## Testing Best Practices

### DO's
- Write tests before fixing bugs (TDD)
- Test edge cases
- Keep tests independent
- Use descriptive test names
- Mock external dependencies
- Clean up test data

### DON'Ts
- Don't test implementation details
- Don't write brittle tests
- Don't skip tests without a reason
- Don't commit commented-out tests
- Don't test third-party libraries

## Test Naming Conventions

```typescript
// Good: Describes what is being tested
it('should reject invalid email addresses')

// Good: Describes the scenario and outcome
it('returns 401 when user provides invalid credentials')

// Bad: Vague
it('works correctly')
```

## Common Testing Frameworks

| Language | Framework | Command |
|----------|-----------|---------|
| TypeScript/JS | Jest, Vitest | `npm test` |
| Python | pytest | `pytest` |
| Go | testing | `go test` |
| Java | JUnit | `mvn test` |
| Rust | built-in | `cargo test` |

## Scripts

Generate test boilerplate:
```bash
python3 scripts/generate_test.py --name <feature> --output tests/test-plan.md
```

Check test coverage:
```bash
python3 scripts/coverage_report.py --name <service-name> --output coverage-report.md
```

## References

- `references/best-practices.md` - Testing best practices
- `references/examples/` - Framework-specific examples
- `references/mocking.md` - Mocking guidelines

© zhaono1 · MIT · zhaono1/agent-playbook

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой