Skip to content

Latest commit

 

History

History
134 lines (95 loc) · 4.69 KB

File metadata and controls

134 lines (95 loc) · 4.69 KB

测试与验收

本文定义项目的静态检查、无头测试和人工运行验收。项目支持 macOS 和 Windows,仅要求 Godot 4.7 stable;just 不是前置条件。

测试分层

  1. 静态解析:确认 Godot 能导入项目并解析场景与脚本。
  2. 无头测试:验证规则、存档、场景结构、资源契约和纯逻辑行为。
  3. 运行态验收:启动真实游戏,检查输入、十投闭环、重玩和界面交互。
  4. 体验验收:判断手感、声音、视觉节奏和触摸体验。

前两层适合每次代码、场景或资源变更后执行;涉及 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 --check

Windows 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. 在没有弹层遮挡时,从碗内按住并拖动骰子。
  2. 以轻、中、重三种力度分别释放,观察力度条和骰子运动差异。
  3. 等待骰子停稳或出碗结算。

每次投掷应满足:

  • 剩余次数准确减少 1。
  • 当前记录增加一行,奖项、骰面和分数图片完整可见。
  • 中奖或未中奖反馈正常显示,约 0.8s 后隐藏。
  • 结算结束后可以继续投掷,不会永久停在等待状态。
  • 骰子出碗时按既定规则结算,不会阻塞本局。

十投与重玩

连续完成 10 次投掷,逐次确认剩余次数从 10 降到 0。第十投后应满足:

  • 最终结果面板可见且包含 10 条记录。
  • 面板没有被 3D 场景遮挡,也没有裁切或重叠。
  • 最终分数和记录排序与各次投掷一致。

点击重玩后应满足:

  • 剩余次数恢复为 10,当前分和本局记录清空。
  • 最终结果面板关闭,可以开始新一局。
  • 历史最高分不会因重玩被清零。

HUD 与弹层

在未投掷时依次检查:

  • 当前分入口打开当前记录面板。
  • 历史入口打开历史记录面板。
  • 规则按钮打开规则面板。
  • 各面板关闭按钮有效。
  • 弹层打开时点击碗区域不会抓骰或消耗次数。
  • 记录列表可以滚动,所有图片行完整可见。

至少在 1080 x 1920 和一个更长的竖屏窗口下检查布局。真机发布前还需检查触摸命中区域和安全区。

体验验收

以下内容必须由实际运行判断:

  • 触摸或鼠标拖动是否跟手。
  • 轻、中、重力度是否有清晰差异。
  • 骰子弹跳、停稳和出碗概率是否自然。
  • 碰撞音、中奖音和汇总音的音量与延迟是否合适。
  • 骰子闪光颜色、亮度和约 0.8s 的节奏是否自然。
  • 长竖屏布局、文字图片和按钮是否清晰且没有重叠。

阻断标准

以下任一情况都应阻止合并或发布:

  • 主场景无法启动、脚本解析失败、资源缺失或运行崩溃。
  • 有效拖动不能触发投掷,或投掷次数不减少。
  • 单次投掷永久停在等待状态。
  • 十投后记录数不是 10、剩余次数不是 0,或结果面板未出现。
  • 结果面板逻辑上可见但实际画面不可见、裁切或严重重叠。
  • 弹层打开时仍会误触发投掷。
  • 自动测试出现 Godot ERROR、失败断言或不稳定结果。

测试记录至少包含 Godot 版本、操作系统、窗口尺寸、输入方式、自动检查结果、十投结果、重玩结果、发现的问题和必要截图。