- 将 ShrinkEventBus、ShrinkDataSaver 及其 EventBus 集成从 gitlink 转为仓库直接维护的完整 UPM 包,补齐运行时、编辑器工具、测试与文档 - 新增 Command 和 Network 的 App 集成组件,支持 ContextLoader 服务发布、可逆注销及 Network Loopback 生命周期管理 - 更新 Starter 与演示组合逻辑,缺失模块时可注册、已有兼容安装器时可覆盖,并补充宿主启动断言 - 升级内部包依赖与 Shared CodeGen 包定义,放宽 Integration.App 包的 Git 忽略规则 - 将独立服务器生成器改为基于已编译程序集的语义扫描,支持 partial、复杂泛型、命名冲突检测及模板 SHA-256 覆写保护 - 新增 Network 语义扫描、模板保护和 App 组件生命周期测试 - 新增真实 UPM 消费工程验证脚本,校验内部版本一致性、程序集加载及 EditMode 测试 - 重构当前架构文档并归档已完成的 Cordis 迁移与旧代码地图
66 lines
2.5 KiB
Markdown
66 lines
2.5 KiB
Markdown
# 测试情况
|
||
|
||
## 当前测试布局
|
||
|
||
- 测试集中在 `Assets/Modules/ShrinkDataSaver/Tests`。
|
||
- 测试程序集定义见 `Assets/Modules/ShrinkDataSaver/Tests/ShrinkDataSaver.Tests.asmdef`。
|
||
- 该 asmdef:
|
||
- 仅在 `Editor` 平台启用
|
||
- 依赖 `UnityEngine.TestRunner` 与 `UnityEditor.TestRunner`
|
||
- 通过 `UNITY_INCLUDE_TESTS` 控制
|
||
- 额外引用 `Newtonsoft.Json.dll`
|
||
|
||
## 已覆盖模块
|
||
|
||
- `Assets/Modules/ShrinkDataSaver/Tests/ShrinkSaveTests.cs`
|
||
- 模块注册
|
||
- 保存、加载、删除
|
||
- 事件触发
|
||
- 关键模块失败行为
|
||
- 版本迁移事件
|
||
- 查询接口
|
||
- 自动保存间隔
|
||
- 元数据读取
|
||
- `LoadedSlot` 状态
|
||
- 多模块往返
|
||
- `Assets/Modules/ShrinkDataSaver/Tests/ShrinkSettingsTests.cs`
|
||
- 设置读写、监听、持久化与防抖行为
|
||
- `Assets/Modules/ShrinkDataSaver/Tests/SaveEncryptorTests.cs`
|
||
- 加解密往返、错误密码、空输入等边界
|
||
- `Assets/Modules/ShrinkDataSaver/Tests/MigrationChainTests.cs`
|
||
- 注册、链式迁移、缺步、回滚
|
||
- `Assets/Modules/ShrinkDataSaver/Tests/DataSerializerTests.cs`
|
||
- JSON 序列化基础行为
|
||
- `Assets/Modules/ShrinkDataSaver/Tests/SaveTypesTests.cs`
|
||
- 类型层面的默认值与结构行为
|
||
|
||
## 测试风格
|
||
|
||
- 同时使用同步 NUnit 测试和基于 `UniTask.ToCoroutine` 的 `UnityTest`。
|
||
- 使用 `MockStorageProvider` 模拟存储后端,避免真实磁盘依赖。
|
||
- 通过 `ResetForTesting()`、`MigrationChain.Clear()` 等内部重置方法控制静态状态污染。
|
||
|
||
## 当前数量
|
||
|
||
- 当前扫描到 `[Test]` 与 `[UnityTest]` 标记共 `78` 个。
|
||
- 测试密度主要集中在 `ShrinkDataSaver`,并未均匀覆盖整个仓库。
|
||
|
||
## 明显缺口
|
||
|
||
- 没有看到 `ShrinkEventBus` 对应的测试目录。
|
||
- `EventBus` 的优先级排序、取消传播、异步处理、自动注册织入结果,没有自动化测试证据。
|
||
- 编辑器窗口也没有独立测试。
|
||
- 没有发现 CI 配置文件,说明测试是否自动执行未知,当前更像本地手动运行模式。
|
||
|
||
## 适合后续补强的位置
|
||
|
||
- `Assets/Modules/ShrinkEventBus/Runtime/EventBus.cs`
|
||
- `Assets/Modules/ShrinkEventBus/Runtime/ListenerList.cs`
|
||
- `Assets/Modules/ShrinkEventBus/CodeGen/Editor/EventBusILPostProcessor.cs`
|
||
- `Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEventBusBridge.cs`
|
||
|
||
## 结论
|
||
|
||
- 这个仓库的测试现状可以概括为:`ShrinkDataSaver` 覆盖较扎实,`ShrinkEventBus` 和集成层明显偏弱。
|
||
- 如果后续要发包或稳定演进,优先级最高的补测点是 EventBus 核心行为与编译织入结果。
|