К основному содержанию
хук

test-runner — хук для Claude Code: автозапуск тестов после правок

Хук запускает тесты сразу после того, как Claude изменил файл. Полезен, если не хочется вручную гонять проверки после каждой правки.

Установить в Claude Code · Через claude-code-templates Все способы и платформы ↓
npx claude-code-templates@latest --hook testing/test-runner
Открыть на GitHub

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

Хук висит на событии PostToolUse с матчером Edit. Как только агент отредактировал файл, команда смотрит на расширение и на файлы проекта рядом.

Для .js и .ts нужен package.json — тогда запускается npm test, а если он не сработал, yarn test. Для .py проверяются pytest.ini, setup.cfg или pyproject.toml, и тесты идут через pytest по конкретному файлу. Для .rb достаточно Gemfile, дальше bundle exec rspec. Ошибки глушатся, так что хук не сломает сессию, но и не покажет, почему тесты упали.

Ставить его в проект без тестовой обвязки смысла мало: без package.json, pytest.ini или Gemfile не выполнится ни одна ветка.

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

  • прогнать тесты сразу после правки файла
  • поймать регрессию, пока агент ещё держит контекст
  • не переключаться в терминал ради npm test
  • проверить один изменённый файл, а не весь набор
  • поддержать Python и Ruby в одном проекте

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

  • Отредактируй src/api/users.ts и прогони тесты после правки
  • Поправь app/models/order.py, хук сам запустит pytest по этому файлу
  • Обнови lib/parser.rb и проверь, что rspec проходит

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

1Через claude-code-templates

npx claude-code-templates@latest --hook testing/test-runner

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

.claude/settings.json

Блок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json

По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду

Вопросы о test-runner

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

Выполните npx claude-code-templates@latest --hook testing/test-runner, затем проверьте .claude/settings.json — запись хука должна оказаться там.

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

После каждого редактирования файла запускает подходящую тестовую команду: npm test или yarn test для JS и TS, pytest для Python, bundle exec rspec для Ruby.

Почему тесты не запускаются?

Хук срабатывает только при наличии признаков проекта: package.json для JS и TS, pytest.ini, setup.cfg или pyproject.toml для Python, Gemfile для Ruby. Без них команда молча завершается.

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

test-runner.json · MIT
{
  "description": "Automatically run relevant tests after code changes. Detects test files and runs appropriate test commands based on file extensions and project structure.",
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "if [[ \"$CLAUDE_TOOL_FILE_PATH\" == *.js || \"$CLAUDE_TOOL_FILE_PATH\" == *.ts ]] && [[ -f package.json ]]; then npm test 2>/dev/null || yarn test 2>/dev/null || true; elif [[ \"$CLAUDE_TOOL_FILE_PATH\" == *.py ]] && [[ -f pytest.ini || -f setup.cfg || -f pyproject.toml ]]; then pytest \"$CLAUDE_TOOL_FILE_PATH\" 2>/dev/null || python -m pytest \"$CLAUDE_TOOL_FILE_PATH\" 2>/dev/null || true; elif [[ \"$CLAUDE_TOOL_FILE_PATH\" == *.rb ]] && [[ -f Gemfile ]]; then bundle exec rspec \"$CLAUDE_TOOL_FILE_PATH\" 2>/dev/null || true; fi"
          }
        ]
      }
    ]
  }
}

© davila7 · MIT · davila7/claude-code-templates

Похожие хуки

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

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

Весь набор →
backup-before-edit Хук Claude делает копию файла с меткой времени перед каждой правкой. Пригодится, когда агент переписывает код и хочется откатиться. 1 328установок containerize-application Слэш-команда собирает Docker-конфигурацию под ваш проект: Dockerfile, .dockerignore, docker-compose и заготовки для Kubernetes. 1 200установок docs-maintenance Команда проверяет документацию, ссылки, структуру и стиль, а затем помогает подготовить обновления. Пригодится для регулярного аудита Markdown-файлов. 1 146установок supabase-data-explorer Команда исследует данные и схему Supabase, выполняет SQL-запросы только для чтения и готовит экспорт или визуализацию. Пригодится для проверки базы прямо из проекта. 1 032установок supabase-performance-optimizer Слэш-команда для Claude, которая находит медленные запросы и лишние индексы в базе Supabase и предлагает план оптимизации. 1 026установок design-database-schema Команда проектирует структуру базы данных с учётом связей, ограничений и запросов. Она пригодится при создании схемы или пересмотре существующей. 1 021установок supabase-security-audit Слэш-команда прогоняет аудит безопасности проекта на Supabase: проверяет RLS-политики, права ролей, ключи API и настройки аутентификации. 1 020установок supabase-type-generator Слэш-команда генерирует TypeScript-типы из схемы Supabase и следит за её изменениями. Пригодится, когда схема живёт своей жизнью, а типы в проекте устарели. 948установок

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

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