docs(test): 添加GFramework.Core模块测试覆盖详细清单

添加TEST_COVERAGE_PLAN.md文档,包含:
- 当前测试覆盖率统计(41%)和目标(85%+)
- 各子系统测试覆盖情况分析
- 26个缺失测试文件的详细规划
- 分批次执行计划和时间预估
- 预计总共180-236个测试用例
- [skip ci]
This commit is contained in:
GeWuYou 2026-01-16 10:46:03 +08:00
parent 4f1450fc9b
commit de53fe5413

View File

@ -0,0 +1,819 @@
# GFramework.Core 模块测试覆盖详细清单
> **生成日期**: 2026-01-16
> **当前版本**: Core测试覆盖率 ~41%
> **目标**: 提升Core模块测试覆盖率至 85%+
---
## 📊 总体统计
| 类别 | 源文件数 | 有测试文件数 | 缺失测试文件数 | 测试覆盖率 |
|-----|---------|------------|--------------|----------|
| 架构系统 | 6 | 1 | 5 | 17% |
| 事件系统 | 7 | 4 | 3 | 57% |
| 命令系统 | 3 | 1 | 2 | 33% |
| 查询系统 | 3 | 1 | 2 | 33% |
| 日志系统 | 5 | 3 | 2 | 60% |
| 扩展方法 | 4 | 2 | 2 | 50% |
| 状态系统 | 4 | 2 | 2 | 50% |
| IOC容器 | 1 | 1 | 0 | 100% |
| 模型系统 | 1 | 0 | 1 | 0% |
| 系统基类 | 1 | 0 | 1 | 0% |
| 对象池 | 1 | 1 | 0 | 100% |
| 属性系统 | 2 | 1 | 1 | 50% |
| 工具类 | 1 | 0 | 1 | 0% |
| 环境系统 | 2 | 1 | 1 | 50% |
| 常量 | 1 | 0 | 1 | 0% |
| **总计** | **44** | **18** | **26** | **41%** |
---
## 🎯 测试补充优先级概览
| 优先级 | 文件数 | 预计测试数 | 描述 |
|-------|-------|----------|------|
| 🔴 高优先级 | 10 | 99-124 | 核心功能和关键路径 |
| 🟡 中优先级 | 12 | 71-96 | 重要功能和扩展 |
| 🟢 低优先级 | 4 | 10-16 | 辅助功能和常量 |
| **总计** | **26** | **180-236** | - |
---
## 🔴 高优先级 - 核心功能缺失测试10个文件
### 1. ArchitectureConfigurationTests.cs
**源文件路径**: `GFramework.Core/architecture/ArchitectureConfiguration.cs`
**需要测试的内容**:
- ✅ 构造函数默认值
- ✅ LoggerProperties 默认配置ConsoleLoggerFactoryProvider + Info级别
- ✅ ArchitectureProperties 默认配置AllowLateRegistration=false, StrictPhaseValidation=true
- ✅ 自定义配置替换
- ✅ LoggerProperties 独立修改
- ✅ ArchitectureProperties 独立修改
- ✅ IArchitectureConfiguration 接口实现验证
**预计测试数**: 8-10 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs`
**状态**: ❌ 待创建
---
### 2. ArchitectureContextTests.cs
**源文件路径**: `GFramework.Core/architecture/ArchitectureContext.cs`
**需要测试的内容**:
- ✅ 构造函数参数验证所有5个参数
- ✅ 构造函数空参数异常
- ✅ SendQuery 方法 - 正常查询发送
- ✅ SendQuery 方法 - 空查询异常
- ✅ SendCommand 方法 - 正常命令发送
- ✅ SendCommand 方法 - 空命令异常
- ✅ SendEvent 方法 - 正常事件发送
- ✅ SendEvent 方法 - 空事件异常
- ✅ GetSystem 方法 - 获取已注册系统
- ✅ GetSystem 方法 - 获取未注册系统
- ✅ GetModel 方法 - 获取已注册模型
- ✅ GetModel 方法 - 获取未注册模型
- ✅ GetUtility 方法 - 获取已注册工具
- ✅ GetUtility 方法 - 获取未注册工具
- ✅ RegisterSystem 方法 - 注册新系统
- ✅ RegisterSystem 方法 - 重复注册
- ✅ RegisterModel 方法 - 注册新模型
- ✅ RegisterModel 方法 - 重复注册
- ✅ RegisterUtility 方法 - 注册新工具
- ✅ RegisterUtility 方法 - 重复注册
- ✅ 上下文访问安全性验证
**预计测试数**: 15-20 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/architecture/ArchitectureContextTests.cs`
**状态**: ❌ 待创建
---
### 3. ArchitectureServicesTests.cs
**源文件路径**: `GFramework.Core/architecture/ArchitectureServices.cs`
**需要测试的内容**:
- ✅ 服务容器初始化
- ✅ 所有服务实例创建Container, EventBus, CommandBus, QueryBus
- ✅ SetContext 方法 - 设置上下文
- ✅ SetContext 方法 - 重复设置上下文
- ✅ GetContext 方法 - 获取已设置上下文
- ✅ GetContext 方法 - 未设置上下文时抛出异常
- ✅ 上下文传播到容器
- ✅ IArchitectureServices 接口实现验证
- ✅ 服务独立性验证(多个实例)
**预计测试数**: 10-12 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/architecture/ArchitectureServicesTests.cs`
**状态**: ❌ 待创建
---
### 4. ArchitectureEventsTests.cs
**源文件路径**: `GFramework.Core/events/ArchitectureEvents.cs`
**需要测试的内容**:
- ✅ ArchitectureLifecycleReadyEvent 事件触发
- ✅ ArchitectureDestroyingEvent 事件触发
- ✅ ArchitectureDestroyedEvent 事件触发
- ✅ ArchitectureFailedInitializationEvent 事件触发
- ✅ 事件的参数传递
- ✅ 事件的订阅和取消订阅
- ✅ 事件顺序验证LifecycleReady -> Destroying -> Destroyed
**预计测试数**: 8-10 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/events/ArchitectureEventsTests.cs`
**状态**: ❌ 待创建
---
### 5. AbstractCommandTests.cs
**源文件路径**: `GFramework.Core/command/AbstractCommand.cs`
**需要测试的内容**:
- ✅ 抽象命令的基础实现
- ✅ Execute 方法调用
- ✅ Execute 方法的异常处理
- ✅ 上下文感知功能SetContext, GetContext
- ✅ 日志功能Logger属性
- ✅ 子类继承行为验证
- ✅ 命令执行前日志记录
- ✅ 命令执行后日志记录
- ✅ 错误情况下的日志记录
**预计测试数**: 8-10 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/command/AbstractCommandTests.cs`
**状态**: ❌ 待创建
---
### 6. AbstractQueryTests.cs
**源文件路径**: `GFramework.Core/query/AbstractQuery.cs`
**需要测试的内容**:
- ✅ 抽象查询的基础实现
- ✅ Do 方法调用
- ✅ Do 方法的异常处理
- ✅ 上下文感知功能SetContext, GetContext
- ✅ 日志功能Logger属性
- ✅ 子类继承行为验证
- ✅ 查询执行前日志记录
- ✅ 查询执行后日志记录
- ✅ 返回值类型验证
- ✅ 错误情况下的日志记录
**预计测试数**: 8-10 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/query/AbstractQueryTests.cs`
**状态**: ❌ 待创建
---
### 7. AbstractLoggerTests.cs
**源文件路径**: `GFramework.Core/logging/AbstractLogger.cs`
**需要测试的内容**:
- ✅ 抽象日志器的基础实现
- ✅ Trace 级别方法(所有重载)
- ✅ Debug 级别方法(所有重载)
- ✅ Info 级别方法(所有重载)
- ✅ Warn 级别方法(所有重载)
- ✅ Error 级别方法(所有重载)
- ✅ Fatal 级别方法(所有重载)
- ✅ IsTraceEnabled 方法
- ✅ IsDebugEnabled 方法
- ✅ IsInfoEnabled 方法
- ✅ IsWarnEnabled 方法
- ✅ IsErrorEnabled 方法
- ✅ IsFatalEnabled 方法
- ✅ IsEnabledForLevel 方法
- ✅ Name 方法
- ✅ 异常处理和日志记录
- ✅ 格式化字符串处理
- ✅ 子类继承行为验证
**预计测试数**: 12-15 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/logging/AbstractLoggerTests.cs`
**状态**: ❌ 待创建
---
### 8. ContextAwareStateMachineTests.cs
**源文件路径**: `GFramework.Core/state/ContextAwareStateMachine.cs`
**注意**: 此文件已创建但被删除,需要重新创建
**需要测试的内容**:
- ✅ 作为 ISystem 的集成测试
- ✅ Init 方法 - 初始化上下文感知状态
- ✅ Init 方法 - 设置Context属性
- ✅ Destroy 方法 - 清理状态
- ✅ OnArchitecturePhase 方法 - 接收架构阶段
- ✅ 上下文感知状态初始化
- ✅ 状态变更事件发送
- ✅ SetContext 方法
- ✅ GetContext 方法
- ✅ ISystem 接口实现验证
- ✅ 与 EventBus 的集成测试
- ✅ 多状态注册和切换
- ✅ 状态机生命周期完整性
**预计测试数**: 12-15 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/state/ContextAwareStateMachineTests.cs`
**状态**: ⚠️ 需要重新创建
---
### 9. AbstractModelTests.cs
**源文件路径**: `GFramework.Core/model/AbstractModel.cs`
**需要测试的内容**:
- ✅ 抽象模型的基础实现
- ✅ IModel 接口实现验证
- ✅ Init 方法调用
- ✅ Destroy 方法调用
- ✅ 上下文感知功能SetContext, GetContext
- ✅ 日志功能Logger属性
- ✅ 子类继承行为验证
- ✅ 模型初始化日志记录
- ✅ 模型销毁日志记录
- ✅ 模型生命周期完整性
**预计测试数**: 8-10 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/model/AbstractModelTests.cs`
**状态**: ❌ 待创建
---
### 10. AbstractSystemTests.cs
**源文件路径**: `GFramework.Core/system/AbstractSystem.cs`
**需要测试的内容**:
- ✅ 抽象系统的基础实现
- ✅ ISystem 接口实现验证
- ✅ Init 方法调用
- ✅ Destroy 方法调用
- ✅ 上下文感知功能SetContext, GetContext
- ✅ 日志功能Logger属性
- ✅ 架构阶段感知OnArchitecturePhase
- ✅ 子类继承行为验证
- ✅ 系统初始化日志记录
- ✅ 系统销毁日志记录
- ✅ 架构阶段变化响应
- ✅ 系统生命周期完整性
**预计测试数**: 10-12 个
**优先级**: 🔴 高
**创建路径**: `GFramework.Core.Tests/system/AbstractSystemTests.cs`
**状态**: ❌ 待创建
---
## 🟡 中优先级 - 重要功能缺失测试12个文件
### 11. AbstractObjectPoolSystemTests.cs
**源文件路径**: `GFramework.Core/pool/AbstractObjectPoolSystem.cs`
**当前状态**: ⚠️ 已有 ObjectPoolTests.cs但可能需要补充抽象类的测试
**需要测试的内容**:
- ✅ 抽象对象池基类实现
- ✅ IObjectPoolSystem 接口实现验证
- ✅ GetObject 方法 - 获取对象
- ✅ GetObject 方法 - 空池处理
- ✅ ReturnObject 方法 - 返回对象
- ✅ ReturnObject 方法 - 重复返回
- ✅ 对象池容量管理
- ✅ 对象复用逻辑
- ✅ 对象池生命周期
- ✅ 对象池扩容机制
**预计测试数**: 8-10 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/pool/AbstractObjectPoolSystemTests.cs`
**状态**: ❌ 待创建
---
### 12. DefaultUnRegisterTests.cs
**源文件路径**: `GFramework.Core/events/DefaultUnRegister.cs`
**需要测试的内容**:
- ✅ UnRegister 方法的实现
- ✅ 事件订阅的取消
- ✅ 资源清理
- ✅ 多次调用UnRegister
- ✅ UnRegister后的事件处理
**预计测试数**: 4-6 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/events/DefaultUnRegisterTests.cs`
**状态**: ❌ 待创建
---
### 13. EasyEventGenericTests.cs
**源文件路径**: `GFramework.Core/events/EasyEventGeneric.cs`
**需要测试的内容**:
- ✅ 泛型事件的基本功能
- ✅ 事件发送和接收
- ✅ 订阅和取消订阅
- ✅ 泛型类型约束
- ✅ 不同泛型类型的独立性
- ✅ 泛型事件的序列化(如果需要)
**预计测试数**: 6-8 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/events/EasyEventGenericTests.cs`
**状态**: ❌ 待创建
---
### 14. ConsoleLoggerFactoryProviderTests.cs
**源文件路径**: `GFramework.Core/logging/ConsoleLoggerFactoryProvider.cs`
**需要测试的内容**:
- ✅ ConsoleLogger 创建
- ✅ 最小日志级别设置
- ✅ LoggerFactoryProvider 接口实现
- ✅ 不同日志名称的Logger创建
- ✅ Logger实例唯一性
**预计测试数**: 4-6 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/logging/ConsoleLoggerFactoryProviderTests.cs`
**状态**: ❌ 待创建
---
### 15. LoggerFactoryResolverTests.cs
**源文件路径**: `GFramework.Core/logging/LoggerFactoryResolver.cs`
**需要测试的内容**:
- ✅ 全局工厂提供程序设置
- ✅ 获取默认提供程序
- ✅ 空提供程序处理
- ✅ 提供程序替换
- ✅ 线程安全性
- ✅ 多次设置提供程序
**预计测试数**: 5-8 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/logging/LoggerFactoryResolverTests.cs`
**状态**: ❌ 待创建
---
### 16. ContextAwareExtensionsTests.cs
**源文件路径**: `GFramework.Core/extensions/ContextAwareExtensions.cs`
**需要测试的内容**:
- ✅ GetContext 扩展方法
- ✅ SetContext 扩展方法
- ✅ GetLogger 扩展方法
- ✅ GetContainer 扩展方法
- ✅ GetEventBus 扩展方法
- ✅ GetCommandBus 扩展方法
- ✅ GetQueryBus 扩展方法
- ✅ 扩展方法对null的处理
- ✅ 多次调用扩展方法
**预计测试数**: 10-12 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/extensions/ContextAwareExtensionsTests.cs`
**状态**: ❌ 待创建
---
### 17. OrEventExtensionsTests.cs
**源文件路径**: `GFramework.Core/extensions/OrEventExtensions.cs`
**需要测试的内容**:
- ✅ Or 操作符重载
- ✅ Or 事件创建
- ✅ 事件组合逻辑
- ✅ 多个事件合并
- ✅ Or事件的订阅和取消订阅
- ✅ Or事件的触发
**预计测试数**: 6-8 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/extensions/OrEventExtensionsTests.cs`
**状态**: ❌ 待创建
---
### 18. ContextAwareStateBaseTests.cs
**源文件路径**: `GFramework.Core/state/ContextAwareStateBase.cs`
**需要测试的内容**:
- ✅ 抽象状态基类实现
- ✅ 上下文感知功能SetContext, GetContext
- ✅ 状态生命周期OnEnter, OnExit
- ✅ 日志功能Logger属性
- ✅ 子类继承行为
- ✅ 状态转换规则
- ✅ 状态生命周期完整性
**预计测试数**: 8-10 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/state/ContextAwareStateBaseTests.cs`
**状态**: ❌ 待创建
---
### 19. StateChangedEventTests.cs
**源文件路径**: `GFramework.Core/state/StateChangedEvent.cs`
**需要测试的内容**:
- ✅ OldState 属性设置和获取
- ✅ NewState 属性设置和获取
- ✅ 空状态处理
- ✅ 事件的初始化
- ✅ 事件的不可变性(如果适用)
**预计测试数**: 4-6 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/state/StateChangedEventTests.cs`
**状态**: ❌ 待创建
---
### 20. AbstractContextUtilityTests.cs
**源文件路径**: `GFramework.Core/utility/AbstractContextUtility.cs`
**需要测试的内容**:
- ✅ 抽象工具类实现
- ✅ IContextUtility 接口实现
- ✅ Init 方法调用
- ✅ 日志初始化
- ✅ 上下文感知功能SetContext, GetContext
- ✅ 子类继承行为
- ✅ 工具初始化日志记录
- ✅ 工具生命周期完整性
**预计测试数**: 6-8 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/utility/AbstractContextUtilityTests.cs`
**状态**: ❌ 待创建
---
### 21. BindablePropertyUnRegisterTests.cs
**源文件路径**: `GFramework.Core/property/BindablePropertyUnRegister.cs`
**需要测试的内容**:
- ✅ 取消订阅功能
- ✅ 资源清理
- ✅ 与 BindableProperty 的集成
- ✅ 多次取消订阅
- ✅ 取消订阅后的属性变化
**预计测试数**: 4-6 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/property/BindablePropertyUnRegisterTests.cs`
**状态**: ❌ 待创建
---
### 22. DefaultEnvironmentTests.cs
**源文件路径**: `GFramework.Core/environment/DefaultEnvironment.cs`
**需要测试的内容**:
- ✅ 默认环境实现
- ✅ 平台检测Windows, Linux, Mac等
- ✅ 环境变量访问
- ✅ 运行时信息获取
- ✅ IEnvironment 接口实现
- ✅ 环境信息准确性
**预计测试数**: 6-8 个
**优先级**: 🟡 中
**创建路径**: `GFramework.Core.Tests/environment/DefaultEnvironmentTests.cs`
**状态**: ❌ 待创建
---
## 🟢 低优先级 - 辅助功能缺失测试4个文件
### 23. ArchitectureConstantsTests.cs
**源文件路径**: `GFramework.Core/architecture/ArchitectureConstants.cs`
**需要测试的内容**:
- ✅ 常量值的正确性
- ✅ 常量类型验证
- ✅ 常量可访问性
- ✅ 常量命名规范
**预计测试数**: 3-5 个
**优先级**: 🟢 低
**创建路径**: `GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs`
**状态**: ❌ 待创建
---
### 24. EmptyCommandInputTests.cs
**源文件路径**: `GFramework.Core/command/EmptyCommandInput.cs`
**需要测试的内容**:
- ✅ 空命令输入的默认行为
- ✅ ICommandInput 接口实现验证
- ✅ 单例模式(如果适用)
**预计测试数**: 2-3 个
**优先级**: 🟢 低
**创建路径**: `GFramework.Core.Tests/command/EmptyCommandInputTests.cs`
**状态**: ❌ 待创建
---
### 25. EmptyQueryInputTests.cs
**源文件路径**: `GFramework.Core/query/EmptyQueryInput.cs`
**需要测试的内容**:
- ✅ 空查询输入的默认行为
- ✅ IQueryInput 接口实现验证
- ✅ 单例模式(如果适用)
**预计测试数**: 2-3 个
**优先级**: 🟢 低
**创建路径**: `GFramework.Core.Tests/query/EmptyQueryInputTests.cs`
**状态**: ❌ 待创建
---
### 26. GFrameworkConstantsTests.cs
**源文件路径**: `GFramework.Core/constants/GFrameworkConstants.cs`
**需要测试的内容**:
- ✅ 版本号常量
- ✅ 其他框架常量
- ✅ 常量值正确性
- ✅ 常量类型验证
- ✅ 常量可访问性
**预计测试数**: 3-5 个
**优先级**: 🟢 低
**创建路径**: `GFramework.Core.Tests/constants/GFrameworkConstantsTests.cs`
**状态**: ❌ 待创建
---
## 📋 详细执行计划
### 第一批最关键5个文件预计 2-3 小时)
| 序号 | 测试文件 | 预计测试数 | 优先级 | 预计时间 |
|-----|---------|----------|--------|---------|
| 1 | ArchitectureConfigurationTests.cs | 8-10 | 🔴 高 | 15分钟 |
| 2 | ArchitectureContextTests.cs | 15-20 | 🔴 高 | 40分钟 |
| 3 | ArchitectureServicesTests.cs | 10-12 | 🔴 高 | 25分钟 |
| 4 | ArchitectureEventsTests.cs | 8-10 | 🔴 高 | 20分钟 |
| 5 | ContextAwareStateMachineTests.cs | 12-15 | 🔴 高 | 30分钟 |
**小计**: 53-67 个测试
---
### 第二批重要基础类5个文件预计 2-3 小时)
| 序号 | 测试文件 | 预计测试数 | 优先级 | 预计时间 |
|-----|---------|----------|--------|---------|
| 6 | AbstractCommandTests.cs | 8-10 | 🔴 高 | 25分钟 |
| 7 | AbstractQueryTests.cs | 8-10 | 🔴 高 | 25分钟 |
| 8 | AbstractLoggerTests.cs | 12-15 | 🔴 高 | 35分钟 |
| 9 | AbstractModelTests.cs | 8-10 | 🔴 高 | 20分钟 |
| 10 | AbstractSystemTests.cs | 10-12 | 🔴 高 | 25分钟 |
**小计**: 46-57 个测试
---
### 第三批扩展功能8个文件预计 2-3 小时)
| 序号 | 测试文件 | 预计测试数 | 优先级 | 预计时间 |
|-----|---------|----------|--------|---------|
| 11 | AbstractObjectPoolSystemTests.cs | 8-10 | 🟡 中 | 20分钟 |
| 12 | DefaultUnRegisterTests.cs | 4-6 | 🟡 中 | 10分钟 |
| 13 | EasyEventGenericTests.cs | 6-8 | 🟡 中 | 15分钟 |
| 14 | ConsoleLoggerFactoryProviderTests.cs | 4-6 | 🟡 中 | 10分钟 |
| 15 | LoggerFactoryResolverTests.cs | 5-8 | 🟡 中 | 15分钟 |
| 16 | ContextAwareExtensionsTests.cs | 10-12 | 🟡 中 | 25分钟 |
| 17 | OrEventExtensionsTests.cs | 6-8 | 🟡 中 | 15分钟 |
| 18 | ContextAwareStateBaseTests.cs | 8-10 | 🟡 中 | 20分钟 |
**小计**: 51-68 个测试
---
### 第四批可选功能10个文件预计 1-2 小时)
| 序号 | 测试文件 | 预计测试数 | 优先级 | 预计时间 |
|-----|---------|----------|--------|---------|
| 19 | StateChangedEventTests.cs | 4-6 | 🟡 中 | 10分钟 |
| 20 | AbstractContextUtilityTests.cs | 6-8 | 🟡 中 | 15分钟 |
| 21 | BindablePropertyUnRegisterTests.cs | 4-6 | 🟡 中 | 10分钟 |
| 22 | DefaultEnvironmentTests.cs | 6-8 | 🟡 中 | 15分钟 |
| 23 | ArchitectureConstantsTests.cs | 3-5 | 🟢 低 | 10分钟 |
| 24 | EmptyCommandInputTests.cs | 2-3 | 🟢 低 | 5分钟 |
| 25 | EmptyQueryInputTests.cs | 2-3 | 🟢 低 | 5分钟 |
| 26 | GFrameworkConstantsTests.cs | 3-5 | 🟢 低 | 10分钟 |
**小计**: 30-44 个测试
---
## 📊 最终统计
| 批次 | 文件数 | 预计测试数 | 预计时间 |
|-----|-------|----------|---------|
| 第一批 | 5 | 53-67 | 2-3小时 |
| 第二批 | 5 | 46-57 | 2-3小时 |
| 第三批 | 8 | 51-68 | 2-3小时 |
| 第四批 | 8 | 30-44 | 1-2小时 |
| **总计** | **26** | **180-236** | **7-11小时** |
---
## 🎯 目标达成路径
### 当前状态
- **现有测试数**: 228 个
- **测试覆盖率**: ~41%
- **缺失测试**: 180-236 个
### 第一批完成后
- **预计测试数**: 228 + 53-67 = 281-295 个
- **预计覆盖率**: ~50-55%
### 第二批完成后
- **预计测试数**: 281-295 + 46-57 = 327-352 个
- **预计覆盖率**: ~60-65%
### 第三批完成后
- **预计测试数**: 327-352 + 51-68 = 378-420 个
- **预计覆盖率**: ~70-75%
### 第四批完成后
- **预计测试数**: 378-420 + 30-44 = 408-464 个
- **预计覆盖率**: ~75-80%
---
## 📝 注意事项
### 测试隔离性
1. ✅ 每个测试文件使用独立的测试辅助类TestXxxV2, TestXxxV3等
2. ✅ 避免与现有测试类TestSystem, TestModel命名冲突
3. ✅ 使用 `[SetUp]``[TearDown]` 确保测试隔离
4. ✅ 必要时使用 `[NonParallelizable]` 特性
### 测试命名规范
- 测试类:`{Component}Tests`
- 测试方法:`{Scenario}_Should_{ExpectedOutcome}`
- 测试辅助类:`Test{Component}V{Version}`
### 构建和验证流程
1. 编写测试代码
2. 运行 `dotnet build` 验证编译
3. 运行 `dotnet test` 执行测试
4. 检查测试通过率
5. 修复失败或隔离性问题
---
## 🔄 更新日志
| 日期 | 操作 | 说明 |
|-----|------|------|
| 2026-01-16 | 初始创建 | 生成完整测试覆盖清单 |
| | | |
---
## 📌 待确认事项
- [ ] 确认优先级划分是否合理
- [ ] 确认执行计划是否可行
- [ ] 确认测试用例数量估算是否准确
- [ ] 确认测试隔离策略是否完整
---
**文档维护**: 请在完成每个测试文件后更新本文档的"状态"字段