리팩토링테스트데이터·SQLby affaan-m
테스트 커버리지
코드의 테스트 커버리지를 분석하고, 누락된 부분을 식별하며, 목표 임계치에 도달하도록 부족한 테스트를 생성해 드립니다.
한 줄 평가 — 다음 사람 도와주세요
언제 쓰나
코드 테스트 커버리지를 분석하고 개선하거나, 누락된 테스트를 자동으로 생성하여 목표 커버리지를 달성하고 싶을 때 사용합니다.
SKILL.md
Lattice 한국어 번역 · 원본 affaan-m/everything-claude-code (841beea). 복사 → 저장하면 Claude Code가 인식합니다.
--- description: 커버리지 분석, 격차 식별 및 목표 임계값에 대한 누락된 테스트 생성. --- # 테스트 커버리지 테스트 커버리지 분석, 격차 식별 및 80% 이상의 커버리지에 도달하기 위한 누락된 테스트 생성. ## Step 1: 테스트 프레임워크 감지 | 지시자 | 커버리지 명령어 | |-----------|-----------------| | `jest.config.*` 또는 `package.json` jest | `npx jest --coverage --coverageReporters=json-summary` | | `vitest.config.*` | `npx vitest run --coverage` | | `pytest.ini` / `pyproject.toml` pytest | `pytest --cov=src --cov-report=json` | | `Cargo.toml` | `cargo llvm-cov --json` | | `pom.xml` with JaCoCo | `mvn test jacoco:report` | | `go.mod` | `go test -coverprofile=coverage.out ./...` | ## Step 2: 커버리지 보고서 분석 1. 커버리지 명령어 실행 2. 출력 파싱 (JSON 요약 또는 터미널 출력) 3. 80% 미만의 커버리지 파일 목록, 최악의 경우 먼저 정렬 4. 각 커버리지가 낮은 파일에 대해 다음을 식별: - 테스트되지 않은 함수 또는 메서드 - 누락된 분기 커버리지 (if/else, switch, 오류 경로) - 분모를 늘리는 죽은 코드 ## Step 3: 누락된 테스트 생성 각 커버리지가 낮은 파일에 대해 다음 우선순위를 따르는 테스트 생성: 1. **행복한 경로** — 유효한 입력과 함께 핵심 기능 2. **오류 처리** — 무효한 입력, 누락된 데이터, 네트워크 오류 3. **경계 사례** — 빈 배열, null/undefined, 경계 값 (0, -1, MAX_INT) 4. **분기 커버리지** — 각 if/else, switch 케이스, 삼항 연산자 ### 테스트 생성 규칙 - 테스트를 소스와 인접하게 배치: `foo.ts` → `foo.test.ts` (또는 프로젝트 규칙) - 프로젝트에서 기존 테스트 패턴 사용 (가져오기 스타일,_ASSERT 라이브러리, 모의 방법) - 외부 의존성 모의 (데이터베이스, API, 파일 시스템) - 각 테스트는 독립적이어야 함 — 테스트 간에 공유되는 가변 상태 없음 - 테스트 이름을 설명적으로: `test_create_user_with_duplicate_email_returns_409` ## Step 4: 확인 1. 전체 테스트 스위트 실행 — 모든 테스트가 통과해야 함 2. 커버리지 재실행 — 개선 사항 확인 3. 여전히 80% 미만인 경우 Step 3을 반복하여 남은 격차에 대한 처리 ## Step 5: 보고 이전/이후 비교 표시: ``` 커버리지 보고서 ────────────────────────────── 파일 이전 이후 src/services/auth.ts 45% 88% src/utils/validation.ts 32% 82% ────────────────────────────── 전체: 67% 84% PASS: ``` ## 집중 영역 - 복잡한 분기(높은 순환 복잡도)가 있는 함수 - 오류 핸들러 및 catch 블록 - 코드베이스 전반에서 사용되는 유틸리티 함수 - API 엔드포인트 핸들러 (요청 → 응답 흐름) - 경계 사례: null, undefined, 빈 문자열, 빈 배열, 0, 음수
필요한 도구
호버하면 설명CC
설치 + 호출 (2단계)
Claude Code CLI 기준.
- 1
SKILL.md 저장
아래 버튼으로 복사 → 다음 경로로 저장.
~/.claude/skills/everything-claude-code-167/SKILL.md - 2
호출
Claude Code 채팅창에서 자연어로 부르면 자동 발동:
예) 코드 테스트 커버리지를 분석하고 개선하거나
트리거가 안 잡히면 SKILL.md의
description줄에 더 구체적인 한국어 키워드를 추가해보세요.