1. 测试层次#
| 层次 | 内容 |
|---|---|
| Schema | 字段、类型、范围和默认值 |
| 内容 | ID、引用、依赖、语言、许可证 |
| 仿真 | 命令、事件、生产、物流、资源 |
| 确定性 | 相同输入得到相同 world_hash |
| 存档 | 保存、加载、损坏、迁移、恢复 |
| 平台 | 本地替身、Steam、Cloud、成就 |
| Workshop | 下载、缓存、冲突、缺失、升级 |
| 压力 | 不同实体量、长时间、峰值内存 |
2. 无头运行#
godot --headless --path game --script tools/run_tests.gd
godot --headless --path game --script tools/run_stress.gd -- --scale high无头测试不依赖画面和贴图,优先验证数据、仿真、存档和平台边界。
3. 确定性回归#
测试夹具固定 seed、内容哈希、MOD 清单和命令流,运行两次并比较最终 world_hash、事件序列、成就状态和存档块哈希。任何差异都必须定位,不能用容差掩盖状态分叉。
4. 故障注入#
主动模拟保存中断、内容包缺失、MOD 依赖缺失、线程结果过期、Steam 不可用、Cloud 冲突、Workshop 下载中断和坏校验。每种故障都必须有玩家可理解的恢复路径。
5. 性能报告#
压力报告必须记录测试环境和 P50/P95/P99,不用单个最好成绩作为结论。测试报告随构建归档,性能退化超过阈值时阻断合并。
6. 内容规模验收#
从 10 个资料片样本开始,再扩展到完整资料库。完整导入前先通过重复 ID、断链、循环依赖、缺本地化、非法能力和大文件检查。