4.7 KiB
4.7 KiB
测试指南
🚀 快速测试
方法 1: 游戏功能测试(推荐)
最快的测试方法:
- 在 Godot 编辑器中打开
scenes/TestGameplay.tscn - 按 F6 运行场景
- 使用 WASD 或方向键移动角色
预期结果:
- ✅ 看到 Datawhale 办公室场景
- ✅ 角色可以自由移动
- ✅ 相机跟随角色
- ✅ 角色被墙壁和家具阻挡
- ✅ 游戏流畅运行(30+ FPS)
方法 2: 单元测试套件
全面的系统测试:
- 在 Godot 编辑器中打开
tests/RunAllTests.tscn - 按 F6 运行
- 查看控制台输出
预期结果:
- 所有测试显示 ✅ PASSED
- 测试覆盖:角色数据、控制器、状态管理、输入处理、消息协议
🎮 游戏控制测试
基础移动
- W - 向上移动
- S - 向下移动
- A - 向左移动
- D - 向右移动
- E - 交互(控制台显示消息)
- ESC - 退出
相机控制(调试模式)
- WASD - 移动相机查看整个场景
- Q - 缩小视图
- E - 放大视图
- 鼠标滚轮 - 缩放
- R - 重置相机位置
🏢 场景功能测试
Datawhale 办公室场景
测试步骤:
- 打开
scenes/DatawhaleOffice.tscn - 按 F6 运行
- 使用相机控制查看所有区域
应该看到:
- 灰色地板和深灰色墙壁
- 棕色家具(办公桌、会议桌、沙发)
- Datawhale 品牌元素:
- 欢迎标识(顶部入口)
- 主 Logo 展示(右侧展示区)
- 成就墙(右下方)
- 地板水印(场景中央)
场景导览路线
- 起点 - 欢迎标识区域
- 按 D 向右 → 主展示区大 Logo
- 按 S 向下 → 成就墙 Logo
- 按 Q 缩小 → 地板水印
- 按 R 重置 → 回到起点
🧪 单元测试详情
测试覆盖范围
✅ 消息协议测试:
- 属性测试:数据序列化往返(100次迭代)
- 单元测试:消息创建和验证
✅ 游戏状态管理测试:
- 状态转换(LOGIN → CHARACTER_CREATION → IN_GAME)
- 数据持久化(保存/加载)
- JSON 序列化
✅ 角色系统测试:
- 属性测试:角色 ID 唯一性(100次迭代)
- 角色创建、移动、碰撞检测
- 位置插值和动画
✅ 输入系统测试:
- 属性测试:设备类型检测(100次迭代)
- 键盘输入响应
- 虚拟摇杆(移动端)
属性测试
项目包含基于属性的测试(Property-Based Testing):
运行属性测试:
- 打开
tests/RunPropertyTests.tscn - 按 F6 运行
- 查看详细的测试报告
测试内容:
- 键盘输入响应(100+ 次迭代)
- 服务器更新同步(50 次迭代)
- 在线/离线角色显示(各 50 次迭代)
🔧 故障排除
常见问题
Q: 角色不显示? A:
- 检查控制台错误
- 确保游戏窗口是激活状态
- 尝试重新运行场景
Q: 角色不移动? A:
- 点击游戏窗口确保焦点
- 检查键盘输入是否正常
- 查看控制台错误信息
Q: 相机不跟随? A:
- 等待几秒让相机初始化
- 移动角色后相机应该开始跟随
Q: 测试失败? A:
- 查看控制台详细错误信息
- 确保所有文件已保存
- 检查 Godot 版本是否为 4.5.1+
测试检查清单
场景测试:
- Datawhale 办公室场景正确加载
- 场景尺寸为 2000x1500
- 墙壁和家具正确显示
- 品牌元素正确显示(4个 Logo 位置)
- 相机限制正确设置
功能测试:
- 角色移动响应(WASD)
- 碰撞检测正常
- 相机跟随角色
- 交互功能正常(E 键)
单元测试:
- 所有角色数据测试通过
- 所有控制器测试通过
- 所有状态管理测试通过
- 所有输入处理测试通过
- 所有消息协议测试通过
🎯 测试目标
主要目标
- 核心功能 - 角色移动和相机跟随
- 碰撞检测 - 角色不能穿墙
- 场景渲染 - 所有元素正确显示
次要目标
- 品牌展示 - Datawhale Logo 正确显示
- 性能 - 游戏流畅运行
- 系统稳定性 - 无错误和崩溃
📊 预期性能
- 帧率: 30+ FPS
- 内存使用: < 100MB
- 启动时间: < 5 秒
- 响应延迟: < 50ms
🚀 测试完成后
测试成功后,你可以:
- 继续开发 - 实现更多游戏功能
- 启动服务器 - 测试多人功能
- Web 导出 - 部署到网页版
📝 反馈
如果发现任何问题或有改进建议,请记录下来:
- 具体的错误信息
- 重现步骤
- 预期行为 vs 实际行为
- 系统环境信息
准备好了吗?
打开 scenes/TestGameplay.tscn,按 F6,开始测试!🎮