调整readme

This commit is contained in:
moyin
2025-12-06 17:12:24 +08:00
parent 9e0b559c05
commit 419d2939f6
61 changed files with 3688 additions and 4802 deletions

View File

@@ -1,13 +1,11 @@
# 测试指南
# 快速测试指南
## 🚀 快速测试
## 快速开始
### 方法 1: 游戏功能测试(推荐)
**最快的测试方法**
### 方法 1: 快速测试场景(推荐)
1. 在 Godot 编辑器中打开 `scenes/TestGameplay.tscn`
2.**F6** 运行场景
2.**F6** 运行当前场景
3. 使用 **WASD** 或方向键移动角色
**预期结果**
@@ -15,187 +13,95 @@
- ✅ 角色可以自由移动
- ✅ 相机跟随角色
- ✅ 角色被墙壁和家具阻挡
- ✅ 游戏流畅运行30+ FPS
### 方法 2: 单元测试套件
### 方法 2: 完整游戏测试
**全面的系统测试**
1. 确保服务器正在运行
```bash
cd server
yarn dev
```
1. 在 Godot 编辑器中打开 `tests/RunAllTests.tscn`
2.**F6** 运行
3. 查看控制台输出
2. 在 Godot 编辑器中按 **F5** 运行主场景
3. 输入用户名并创建角色
4. 测试移动、对话等功能
**预期结果**
- 所有测试显示 ✅ 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. 在 Godot 编辑器中打开 `tests/RunPropertyTests.gd`
2. 按 **F6** 运行
3. 查看控制台输出
**运行属性测试**
1. 打开 `tests/RunPropertyTests.tscn`
2. 按 F6 运行
3. 查看详细的测试报告
**测试覆盖**
- 键盘输入响应
- 服务器同步
- 在线/离线角色显示
- 错误显示
- 重连机制
**测试内容**
- 键盘输入响应100+ 次迭代)
- 服务器更新同步50 次迭代)
- 在线/离线角色显示(各 50 次迭代)
### 单元测试
## 🔧 故障排除
运行特定测试文件:
1. 打开 `tests/test_*.gd` 文件
2. 按 **F6** 运行
3. 查看测试结果
### 常见问题
**可用测试**
- `test_character_controller.gd` - 角色控制器测试
- `test_character_data.gd` - 角色数据测试
- `test_input_handler.gd` - 输入处理测试
- `test_game_state_manager.gd` - 状态管理测试
- `test_message_protocol.gd` - 消息协议测试
- `test_security_manager.gd` - 安全管理测试
- `test_rate_limiter.gd` - 速率限制测试
## 测试功能
### 角色移动
- 使用 WASD 或方向键
- 角色应该平滑移动
- 不能穿过墙壁和障碍物
### 相机控制(调试模式)
- **移动相机**: WASD 或方向键
- **缩放**: 鼠标滚轮
- **重置**: R 键
### 网络功能
- 创建角色
- 查看其他在线角色
- 角色状态同步
### 对话系统
- 接近其他角色
- 按 E 键交互
- 发送消息
## 常见问题
**Q: 测试失败怎么办?**
A: 查看控制台详细错误信息,确保所有文件已保存
**Q: 服务器连接失败?**
A: 确认服务器正在运行(`yarn dev`),检查端口 8080 是否被占用
**Q: 角色不显示?**
A:
- 检查控制台错误
- 确保游戏窗口是激活状态
- 尝试重新运行场景
A: 确保游戏窗口是激活状态,检查控制台错误信息
**Q: 角色不移动?**
A:
- 点击游戏窗口确保焦点
- 检查键盘输入是否正常
- 查看控制台错误信息
## 性能测试
**Q: 相机不跟随?**
A:
- 等待几秒让相机初始化
- 移动角色后相机应该开始跟随
### 帧率测试
- 目标: 30+ FPS
- 查看 Godot 编辑器右上角的 FPS 显示
**Q: 测试失败?**
A:
- 查看控制台详细错误信息
- 确保所有文件已保存
- 检查 Godot 版本是否为 4.5.1+
### 网络延迟
- 目标: 操作响应 < 200ms
- 观察角色移动的流畅度
### 测试检查清单
## 下一步
**场景测试**
- [ ] 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开始测试🎮
- 查看 [项目状态](PROJECT_STATUS.md) 了解已完成功能
- 查看 [SETUP.md](SETUP.md) 了解开发环境配置
- 查看 [server/README.md](server/README.md) 了解服务器 API