6.1 KiB
6.1 KiB
变更日志 - 代码覆盖率功能
元数据
- 需求编号:002-04
- 需求名称:代码覆盖率
- 创建时间:2026-02-03
- 创建人:AI Assistant
- 版本号:v1.0.0
- 状态:已完成
变更概述
实现 Salesforce Apex 代码覆盖率查询和统计功能,包括代码覆盖率结果查询、总体覆盖率统计、按类型统计等功能。本功能复用 002-03 测试执行功能的数据库表,通过独立的 Service 层提供代码覆盖率相关的查询和统计能力。
变更内容
新增功能
- 实现代码覆盖率列表查询功能,包括:
- 支持按测试结果 ID、类/触发器名称、命名空间、类型筛选
- 支持按覆盖率范围筛选(最小覆盖率、最大覆盖率)
- 支持分页查询
- 支持按创建时间排序
- 实现代码覆盖率详情查询功能,包括:
- 根据 ID 查询单条覆盖率记录
- 返回完整的覆盖率信息(名称、类型、命名空间、位置数、覆盖率等)
- 实现总体代码覆盖率统计功能,包括:
- 统计总体代码覆盖率
- 统计类覆盖率
- 统计触发器覆盖率
- 统计总类数、总触发器数
- 统计总位置数、未覆盖位置数、已覆盖位置数
- 实现按类型统计代码覆盖率功能,包括:
- 按 Class/Trigger 类型分别统计
- 返回每种类型的覆盖率、总位置数、未覆盖位置数
- 支持按测试结果 ID 筛选
新增文档
新增代码文件
datai-salesforce-apex/src/main/java/com/datai/apex/controller/ApexCodeCoverageController.java- 代码覆盖率控制器
- 提供 4 个 REST API 接口
- 接口路径:/api/apex/coverage
datai-salesforce-apex/src/main/java/com/datai/apex/service/IApexCodeCoverageService.java- 代码覆盖率服务接口
- 定义 4 个服务方法
datai-salesforce-apex/src/main/java/com/datai/apex/service/impl/ApexCodeCoverageServiceImpl.java- 代码覆盖率服务实现
- 实现覆盖率查询和统计逻辑
- 实现覆盖率计算算法
datai-salesforce-apex/src/main/java/com/datai/apex/model/dto/QueryCoverageSummaryDto.java- 查询覆盖率统计请求 DTO
datai-salesforce-apex/src/main/java/com/datai/apex/model/vo/CodeCoverageSummaryVo.java- 代码覆盖率统计 VO
datai-salesforce-apex/src/main/java/com/datai/apex/model/vo/CoverageTypeSummaryVo.java- 按类型统计 VO
datai-salesforce-apex/src/main/java/com/datai/apex/model/vo/CoverageSummaryResponseVo.java- 覆盖率统计响应 VO
复用的代码文件
datai-salesforce-apex/src/main/java/com/datai/apex/model/dto/QueryCodeCoverageDto.java- 查询代码覆盖率请求 DTO(来自 002-03)
datai-salesforce-apex/src/main/java/com/datai/apex/model/vo/CodeCoverageResultVo.java- 代码覆盖率结果 VO(来自 002-03)
datai-salesforce-apex/src/main/java/com/datai/apex/mapper/DataiApexCodeCoverageMapper.java- 代码覆盖率数据访问层(来自 002-03)
datai-salesforce-apex/src/main/java/com/datai/apex/domain/DataiApexCodeCoverage.java- 代码覆盖率实体类(来自 002-03)
影响范围
模块级别
datai-salesforce-apex- Apex API 模块
功能级别
- 代码覆盖率查询功能
- 代码覆盖率统计功能
- 测试执行功能(关联,复用其数据)
文件级别
- 新增 7 个代码文件
- 复用 4 个现有代码文件
- 新增 5 个文档文件
数据库表
- 复用
datai_apex_code_coverage表(来自 002-03) - 不涉及新的数据库变更
API 接口
- 新增 4 个 REST API 接口:
- GET /api/apex/coverage - 查询代码覆盖率列表
- GET /api/apex/coverage/{id} - 查询代码覆盖率详情
- GET /api/apex/coverage/total - 查询总体代码覆盖率
- GET /api/apex/coverage/summary - 按类型统计代码覆盖率
权限控制
- 新增权限标识:
apex:coverage:query - 所有接口需要
apex:coverage:query权限
覆盖率计算算法
单个类/触发器覆盖率
coveragePercent = (1 - numLocationsNotCovered / numLocations) * 100
总体覆盖率
totalCoverage = (1 - totalNotCovered / totalLocations) * 100
类覆盖率
classCoverage = (1 - classNotCovered / classTotalLocations) * 100
触发器覆盖率
triggerCoverage = (1 - triggerNotCovered / triggerTotalLocations) * 100
计算规则
- 保留两位小数(四舍五入)
- 除零保护:当总位置数为 0 时,返回 0.0
相关文档
需求与方案
开发过程
关联需求
- 测试执行需求 - 提供代码覆盖率数据
- Apex API 源 org 实现 - 父需求文档
注意事项
- 数据库表复用:本功能复用 002-03 的
datai_apex_code_coverage表,不创建新表 - 数据依赖:代码覆盖率数据由测试执行功能生成,本功能只提供查询和统计
- 权限分离:代码覆盖率权限与测试执行权限分离,使用独立的
apex:coverage:query权限标识 - 覆盖率范围筛选:由于覆盖率是计算字段,范围筛选在内存中进行
- 性能优化:使用数据库索引和 PageHelper 分页查询优化性能