feat(packages): 内置 SDK 包并完善 ContextLoader 集成

- 将 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 迁移与旧代码地图
This commit is contained in:
2026-08-18 18:06:34 +08:00
parent 517c4cf46e
commit d74c2f08ca
240 changed files with 13647 additions and 545 deletions
@@ -0,0 +1,65 @@
# 测试情况
## 当前测试布局
- 测试集中在 `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 核心行为与编译织入结果。