Files
cneicy d74c2f08ca 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 迁移与旧代码地图
2026-08-18 18:06:34 +08:00

2.5 KiB
Raw Permalink Blame History

测试情况

当前测试布局

  • 测试集中在 Assets/Modules/ShrinkDataSaver/Tests
  • 测试程序集定义见 Assets/Modules/ShrinkDataSaver/Tests/ShrinkDataSaver.Tests.asmdef
  • 该 asmdef
    • 仅在 Editor 平台启用
    • 依赖 UnityEngine.TestRunnerUnityEditor.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.ToCoroutineUnityTest
  • 使用 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 核心行为与编译织入结果。