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