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)

テストレポートをクリックすると、Markdown形式の詳細レポートとログを確認できます。

主なワークフロー

手動プレイテスト制御

「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_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モードのプレイテストをPausePro
resume一時停止中のRunモードプレイテストを再開Pro
play_statusプレイテスト状態と可能なアクションを取得Pro
run_testテストスクリプト注入 → 実行 → ログ収集 → レポート生成script(必須)、test_namemodetimeoutPro

run_testパラメーター

パラメーター必須説明
scriptstring実行するLuauテストコード本文
test_namestringレポートに表示するテスト名
mode”play” | “run”プレイテストモード(デフォルト: “play”)
timeoutnumberタイムアウト秒数(デフォルト: 60、最大: 300)

ユースケース

テスト失敗の分析

「さっき実行した自動テストが失敗した原因を探したい」

Test HistoryでFailedステータスのテストを見つけてTest Reportをクリックすると、詳細ログと失敗原因を確認できます。

テスト履歴の確認

「今日実行したテストの成功・失敗状況を見たい」

Test HistoryでタイムスタンプとStatusを確認してテスト結果の推移を把握します。