# 고도화 Phase 1: 실행 테스트 자동화 + 기본 단위 테스트

## 배경
2/28 고도화 미팅 계획(memory/meetings/2026-02-28-개발팀-긴급-미팅-고도화-계획.md) Phase 1의 Task 1.1 + Task 1.3.
현재 코드 품질 점수 6/10 → 목표 8/10.

## 참조
- 고도화 스펙: /home/jay/workspace/memory/specs/dev-environment-spec.md (Section 2. 코드 품질)
- 현재 워크스페이스 주요 파일들: dispatch.py, prompts/team_prompts.py, memory/task-timer.py

## Task A: 실행 테스트 자동화 (미팅 Task 1.1)

기존 code-validator.py가 있다면 확인하고, 없으면 새로 만들 것.
핵심 기능:
1. /home/jay/workspace/ 하위 주요 Python 모듈을 자동으로 import 테스트
2. 문법 오류(syntax error) 자동 감지
3. 각 모듈의 --help 또는 기본 실행이 에러 없이 동작하는지 확인
4. 결과를 JSON으로 출력

대상 파일 (최소):
- dispatch.py (--help 테스트)
- memory/task-timer.py (--help 테스트)
- prompts/team_prompts.py (import 테스트)
- memory/health-check.sh (실행 테스트)

파일 경로: /home/jay/workspace/tests/run_tests.py

## Task B: 기본 단위 테스트 (미팅 Task 1.3)

pytest 기반 단위 테스트 작성.

1. pytest가 설치되어 있는지 확인. 없으면 pip install --user pytest
2. /home/jay/workspace/tests/ 디렉토리 생성
3. 다음 모듈에 대한 단위 테스트 작성:

### dispatch.py 테스트 (tests/test_dispatch.py)
- generate_task_id()가 유니크한 ID를 반환하는지
- build_prompt()가 올바른 팀 정보를 포함하는지
- TEAM_BOT 매핑이 올바른지
- 잘못된 팀 ID 전달 시 에러 처리

### team_prompts.py 테스트 (tests/test_team_prompts.py)
- 이미 있을 수 있음. 있으면 보강, 없으면 새로 작성
- build_prompt()가 각 팀별로 올바른 프롬프트를 생성하는지
- normal/critical/security 레벨별 차이 확인
- project_id 유무에 따른 프롬프트 차이 확인

### task-timer.py 테스트 (tests/test_task_timer.py)
- start/end/log 명령어가 올바르게 동작하는지
- JSON 출력 형식 확인
- 존재하지 않는 task end 시 에러 처리

4. pytest.ini 또는 pyproject.toml에 pytest 설정 추가
5. 전체 테스트 실행: pytest tests/ -v
6. 커버리지 측정: pip install --user pytest-cov → pytest tests/ --cov=/home/jay/workspace --cov-report=term-missing

## 완료 기준
- pytest tests/ -v 전체 PASS
- 커버리지 60% 이상 (목표 80%)
- run_tests.py 실행 시 전체 모듈 정상 동작

## 보고서
/home/jay/workspace/memory/reports/ 에 저장.