godot-testing
Godot 게임 인터랙티브 테스트 — 입력 주입, 상태 검증, 스크린샷 캡처를 자동화하는 테스트 스킬
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Godot 게임 인터랙티브 테스트 — 입력 주입, 상태 검증, 스크린샷 캡처를 자동화하는 테스트 스킬
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Phase 0 — 게임 콘셉트 확장, 비주얼 타겟 생성, PLAN/STRUCTURE/ASSETS.md 작성, 사용자 승인
완성된 Godot 게임을 UX 디자이너, 게임 디자이너, 기술 리뷰어(Godot 전문) 3관점으로 병렬 평가한다.
단일 태스크 실행기 — GDScript 코드 작성, 씬 수정, 사운드 연결, Godot 4 함정 회피
Phase 1 — 프로젝트 스캐폴딩 + 스크립트 스텁 + 씬 생성 + 에셋 생성 (이미지/사운드/음악)
Phase 2 — PLAN.md 태스크를 순서대로 구현. godot-task 스킬로 각 태스크 실행, compile-check + 스크린샷
Phase 4 — 디버그 코드 제거, 코드 정리, 게임플레이 비디오 캡처
| name | godot-testing |
| description | Godot 게임 인터랙티브 테스트 — 입력 주입, 상태 검증, 스크린샷 캡처를 자동화하는 테스트 스킬 |
게임에 자동화된 입력을 주입하고, 게임 상태를 검증하고, 스크린샷을 캡처합니다. game-develop의 Playwright 테스트를 Godot 4에 맞게 재구현한 시스템입니다.
rules/testing-rules-godot.md — 반복 제한, 시나리오 카테고리, 페이로드 형식templates/test-scenarios.json — 기본 시나리오 정의templates/game_state_reporter.gd — 게임 상태 직렬화 Autoloadtemplates/test_choreography.gd — 입력 주입 Autoloadgodot-test-runner.sh (오케스트레이터)
├── game_state_reporter.gd (Autoload) → 상태 JSON 덤프
├── test_choreography.gd (Autoload) → 입력 주입 + assertion
└── test-scenarios.json → 시나리오 정의
실행 흐름:
1. Autoload 주입 → project.godot에 등록
2. 시나리오 JSON 추출 → 임시 파일
3. Godot 실행 (Xvfb) → 시나리오 자동 실행
4. 결과 수집 → 스크린샷 + state.json + errors
5. Autoload 제거 → 원상복구
# Godot + jq 필수
command -v godot && command -v jq
# Linux: Xvfb 필수 (스크린샷 캡처용)
command -v Xvfb
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-test-runner.sh --check-api
결과가 ready: false이면 --inject-autoloads 사용.
테스트가 올바르게 작동하려면:
add_to_group("player")add_to_group("enemies")add_to_group("game_manager"), game_mode/score 프로퍼티move_left, move_right, move_up, move_down, jump 등 표준 이름⚠️ 이 요구사항은 Phase 2에서 godot-task가 코드를 생성할 때 자동으로 반영해야 합니다.
기본 시나리오(templates/test-scenarios.json)를 사용하거나, 게임에 맞는 커스텀 시나리오를 작성합니다.
커스텀 시나리오 예시 (슈팅 게임):
{
"scenarios": {
"shoot-enemy": {
"description": "게임 시작 후 적 방향으로 이동하며 공격",
"frames": 180,
"steps": [
{ "frame": 0, "press": ["ui_accept"] },
{ "frame": 3, "release": ["ui_accept"] },
{ "frame": 20, "press": ["move_right"] },
{ "frame": 40, "press": ["attack"] },
{ "frame": 42, "release": ["attack"] },
{ "frame": 60, "release": ["move_right"] }
],
"assertions": {
"mode": "playing",
"score": { "gte": 0 }
}
}
}
}
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-test-runner.sh \
--inject-autoloads \
--scenario idle \
--output-dir test_output
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-test-runner.sh \
--inject-autoloads \
--scenarios idle,start-game,basic-movement \
--output-dir test_output
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-test-runner.sh \
--inject-autoloads \
--scenarios-file custom-scenarios.json \
--scenarios shoot-enemy,dodge-test
반드시 Read 도구로 스크린샷 이미지 파일을 열어서 시각적으로 확인합니다.
Read test_output/shot-idle.png
Read test_output/shot-start-game.png
Read test_output/shot-basic-movement.png
Read test_output/state-start-game.json
Read test_output/errors-{scenario}.json
Read test_output/batch-summary.json
passed/total 비율 확인에러 또는 assertion 실패 시:
Implementation Phase에서 매 태스크 완료 후:
compile-check 통과 확인basic-movement)VQA Phase 시작 전: