WEPPY

Playtest

변경을 자동으로 검증하는 플레이테스트 실행과 결과 읽기.

AI가 실행한 플레이테스트의 상태와 테스트 결과를 확인하고, Studio 플레이테스트를 AI로 제어합니다.

Playtest — 플레이테스트 상태와 테스트 기록

개요

Playtest 페이지는 AI가 실행한 플레이테스트의 상태와 테스트 결과를 보여줍니다. 대시보드가 Studio 연결됨 상태일 때만 접근할 수 있습니다.

system_info 도구의 play/stop/pause/resume/play_status/run_test 액션으로 AI가 플레이테스트를 직접 제어합니다.

Playtest Status

현재 플레이테스트 상태를 표시합니다:

상태의미
NotRunning플레이테스트 미실행
Running플레이테스트 실행 중
Paused플레이테스트 일시정지 (Run 모드)

Test History

AI가 run_test 액션으로 실행한 테스트 결과를 시간순으로 나열합니다:

항목설명
타임스탬프테스트 실행 시간
Test Report테스트 리포트 링크
Mode실행 모드 (play/run)
Duration테스트 소요 시간
Status결과 (Passed/Failed)

테스트 리포트를 클릭하면 마크다운 형식의 상세 리포트와 로그를 확인할 수 있습니다.

주요 워크플로우

수동 플레이테스트 제어

"Play 모드(F5)로 게임을 시작해줘"
"현재 플레이테스트를 멈춰줘"

playplay_status로 상태 확인 → stop으로 종료합니다.

자동 테스트 실행 (run_test)

"SpawnLocation이 올바른 위치에 있는지 확인하는 테스트를 작성해서 실행해줘"

run_test는 테스트 스크립트를 주입하고 플레이테스트를 자동으로 시작/수집/정리합니다.

CI 스타일 검증

"NPC AI가 목표 지점까지 이동하는지 Run 모드(F8)에서 테스트하고, 실패하면 로그를 보여줘"

run_testmode: "run"으로 실행하여 서버 사이드 테스트를 진행합니다.

플레이테스트 상태 머신

Edit ──play──→ Running ──stop──→ Edit
                  │                 ↑
                pause             stop
                  │                 │
                  ↓                 │
               Paused ──resume──→ Running
상태가능한 액션
editplay
runningstop, pause (Run 모드만)
pausedresume, stop
  • Play 모드 (F5): 클라이언트+서버 시뮬레이션. pause/resume 불가.
  • Run 모드 (F8): 서버 전용 시뮬레이션. pause/resume 가능.

run_test 파이프라인

run_test는 다음 단계를 자동으로 오케스트레이션합니다:

1. 준비

  • Place 정보 조회 (place_info)
  • 기존 로그 버퍼 초기화

2. 스크립트 주입

  • ServerScriptService.__MCP_TestRunner에 래핑된 테스트 스크립트 생성
  • 래퍼가 자동으로 START/FINISHED 시그널과 에러 트레이스백을 처리

3. 실행 및 모니터링

  • 플레이테스트 시작 (Play 또는 Run 모드)
  • 500ms 간격으로 로그 폴링
  • [WEPPY_TEST]:FINISHED 시그널 수신 시 완료 판정
  • 타임아웃 초과 시 자동 중단 (기본 60초, 최대 300초)

4. 정리

  • 플레이테스트 자동 중지
  • 주입된 테스트 스크립트 삭제
  • 마지막 로그 수집

5. 리포트 생성

리포트와 로그는 로컬 {projectRoot}/weppy-project-sync/place_XXXXX/tests/YYYYMMDD-HHmmss/ 아래에 저장됩니다.

{projectRoot}/weppy-project-sync/place_XXXXX/tests/YYYYMMDD-HHmmss/
├── test-report.md    # 결과 요약 (상태, 시간, 시그널)
└── test-log.txt      # 전체 로그 (타임스탬프, 시퀀스, 레벨)

test-report.md 예시:

# Test Report

- Status: passed
- Test Name: spawn_location_test
- Mode: run
- Place ID: 123456
- Duration (ms): 1523
- Total Logs: 12
- Signal Count: 2

## Signals

- START: 2026-03-12T10:30:00.000Z
- FINISHED: 2026-03-12T10:30:01.523Z

액션 레퍼런스

액션설명파라미터티어
playPlay(F5) 또는 Run(F8) 모드로 플레이테스트 시작mode: “play” | “run”Pro
stop현재 플레이테스트 중지Pro
pauseRun 모드 플레이테스트 일시정지Pro
resume일시정지된 Run 모드 플레이테스트 재개Pro
play_status플레이테스트 상태와 가능한 액션 조회Pro
run_test테스트 스크립트 주입 → 실행 → 로그 수집 → 리포트 생성script (필수), test_name, mode, timeoutPro

run_test 파라미터

파라미터타입필수설명
scriptstring실행할 Luau 테스트 코드 본문
test_namestring리포트에 표시할 테스트 이름
mode”play” | “run”플레이테스트 모드 (기본: “play”)
timeoutnumber타임아웃 초 (기본: 60, 최대: 300)

활용 사례

테스트 실패 분석

"방금 실행한 자동 테스트가 실패한 원인을 찾고 싶다"

Test History에서 Failed 상태의 테스트를 찾아 Test Report를 클릭하면, 상세 로그와 실패 원인을 확인할 수 있습니다.

테스트 이력 확인

"오늘 실행한 테스트들의 성공/실패 현황을 보고 싶다"

Test History에서 타임스탬프와 Status를 확인하여 테스트 결과 추이를 파악합니다.