本文定义项目的静态检查、无头测试和人工运行验收。项目支持 macOS 和 Windows,仅要求 Godot 4.7 stable;just 不是前置条件。
- 静态解析:确认 Godot 能导入项目并解析场景与脚本。
- 无头测试:验证规则、存档、场景结构、资源契约和纯逻辑行为。
- 运行态验收:启动真实游戏,检查输入、十投闭环、重玩和界面交互。
- 体验验收:判断手感、声音、视觉节奏和触摸体验。
前两层适合每次代码、场景或资源变更后执行;涉及 UI、输入、物理、音频、灯光或摄像机时,还必须完成后两层。
macOS:
GODOT="${GODOT:-$(command -v godot 2>/dev/null || true)}"
GODOT="${GODOT:-/Applications/Godot.app/Contents/MacOS/Godot}"
"$GODOT" --version
"$GODOT" --headless --path . --editor --quit --check-only
"$GODOT" --headless --path . --script res://tests/smoke_test.gd
git diff --checkWindows PowerShell:
$Godot = $env:GODOT
if (-not $Godot) {
$Command = Get-Command godot -ErrorAction SilentlyContinue
if ($Command) { $Godot = $Command.Source }
}
if (-not $Godot) {
throw "未找到 Godot 4.7,请设置 GODOT 环境变量为 Godot EXE 的完整路径"
}
& $Godot --version
& $Godot --headless --path . --editor --quit --check-only
& $Godot --headless --path . --script res://tests/smoke_test.gd
git diff --check通过标准:
- Godot 版本为 4.7 stable。
- 命令退出码为 0,测试输出包含
test: ok。 - 没有脚本解析错误、资源加载错误、Godot
ERROR或失败断言。 git diff --check没有空白错误。
Godot 某些错误不会导致非零退出码,因此不能只根据退出码判断通过。
使用 Godot 编辑器或命令行启动项目:
"$GODOT" --path .初始画面应满足:
- 主场景正常加载,碗、桌面和六枚骰子完整可见。
- 剩余次数显示为 10,当前分和历史最高分显示正常。
- 当前记录、历史记录、规则按钮和力度条没有裁切或重叠。
- 启动过程没有脚本、资源或音频错误。
- 在没有弹层遮挡时,从碗内按住并拖动骰子。
- 以轻、中、重三种力度分别释放,观察力度条和骰子运动差异。
- 等待骰子停稳或出碗结算。
每次投掷应满足:
- 剩余次数准确减少 1。
- 当前记录增加一行,奖项、骰面和分数图片完整可见。
- 中奖或未中奖反馈正常显示,约
0.8s后隐藏。 - 结算结束后可以继续投掷,不会永久停在等待状态。
- 骰子出碗时按既定规则结算,不会阻塞本局。
连续完成 10 次投掷,逐次确认剩余次数从 10 降到 0。第十投后应满足:
- 最终结果面板可见且包含 10 条记录。
- 面板没有被 3D 场景遮挡,也没有裁切或重叠。
- 最终分数和记录排序与各次投掷一致。
点击重玩后应满足:
- 剩余次数恢复为 10,当前分和本局记录清空。
- 最终结果面板关闭,可以开始新一局。
- 历史最高分不会因重玩被清零。
在未投掷时依次检查:
- 当前分入口打开当前记录面板。
- 历史入口打开历史记录面板。
- 规则按钮打开规则面板。
- 各面板关闭按钮有效。
- 弹层打开时点击碗区域不会抓骰或消耗次数。
- 记录列表可以滚动,所有图片行完整可见。
至少在 1080 x 1920 和一个更长的竖屏窗口下检查布局。真机发布前还需检查触摸命中区域和安全区。
以下内容必须由实际运行判断:
- 触摸或鼠标拖动是否跟手。
- 轻、中、重力度是否有清晰差异。
- 骰子弹跳、停稳和出碗概率是否自然。
- 碰撞音、中奖音和汇总音的音量与延迟是否合适。
- 骰子闪光颜色、亮度和约
0.8s的节奏是否自然。 - 长竖屏布局、文字图片和按钮是否清晰且没有重叠。
以下任一情况都应阻止合并或发布:
- 主场景无法启动、脚本解析失败、资源缺失或运行崩溃。
- 有效拖动不能触发投掷,或投掷次数不减少。
- 单次投掷永久停在等待状态。
- 十投后记录数不是 10、剩余次数不是 0,或结果面板未出现。
- 结果面板逻辑上可见但实际画面不可见、裁切或严重重叠。
- 弹层打开时仍会误触发投掷。
- 自动测试出现 Godot
ERROR、失败断言或不稳定结果。
测试记录至少包含 Godot 版本、操作系统、窗口尺寸、输入方式、自动检查结果、十投结果、重玩结果、发现的问题和必要截图。