CClaude Code Catalog
전체 Hooks

편집 후 테스트 실행기

Post-Tool입문Hook 타입: post-tool-use

편집 후 테스트 실행기는 모든 파일 쓰기 또는 편집 작업 후에 트리거됩니다. 일반적인 명명 규칙(*.test.ts, *.spec.ts, __tests__/*)을 사용하여 수정된 소스 파일에 해당하는 테스트 파일을 감지하고 해당 테스트만 실행합니다. 매칭되는 테스트 파일이 없으면 조용히 건너뜁니다. 이를 통해 편집이 기존 기능을 손상시키는지 즉시 피드백을 받아 회귀가 누적되기 전에 감지할 수 있습니다.

테스팅JestVitest회귀 테스트자동화

Hook 코드

#!/bin/bash # Post-Edit Test Runner Hook # Runs related tests after file edits # Only trigger on file write/edit tools if [[ "$TOOL_NAME" != "Edit" ]] && [[ "$TOOL_NAME" != "Write" ]]; then exit 0 fi FILE_PATH=$(echo "$TOOL_INPUT" | jq -r '.file_path // .path // empty') if [ -z "$FILE_PATH" ]; then exit 0 fi # Skip non-source files if ! echo "$FILE_PATH" | grep -qE '\.(ts|tsx|js|jsx|py)$'; then exit 0 fi # Skip test files themselves if echo "$FILE_PATH" | grep -qE '\.(test|spec)\.(ts|tsx|js|jsx)$'; then exit 0 fi BASE_NAME=$(basename "$FILE_PATH" | sed 's/\.[^.]*$//') DIR_NAME=$(dirname "$FILE_PATH") # Find matching test files TEST_FILE="" for pattern in "$DIR_NAME/$BASE_NAME.test.ts" "$DIR_NAME/$BASE_NAME.spec.ts" "$DIR_NAME/__tests__/$BASE_NAME.test.ts"; do if [ -f "$pattern" ]; then TEST_FILE="$pattern" break fi done if [ -z "$TEST_FILE" ]; then echo "No matching test file found for $FILE_PATH, skipping." exit 0 fi echo "Running tests: $TEST_FILE" npx vitest run "$TEST_FILE" --reporter=verbose 2>&1 | tail -20 exit 0

이 Hook을 Claude Code 설정 또는 .claude/settings.json에 추가하면 활성화됩니다.

실행 미리보기

편집 후 테스트 실행기

편집 후 테스트 실행기에 대해

Claude Code Hooks는 Claude 작업 중 특정 이벤트에 반응하여 커스텀 셸 명령을 자동으로 실행합니다. 편집 후 테스트 실행기은(는) 입문 수준의 Post-Tool Hook으로, 개발 워크플로우의 핵심 시점에서 작업을 자동화하여 수동 단계를 줄이고 팀 전체의 일관성을 유지합니다.

관련 Hooks