跳到主要内容

覆盖率报告

本文档提供井云服务中心的测试覆盖率分析报告。

覆盖率概览

整体覆盖率

覆盖率类型当前值目标值状态
整体覆盖率~35%70%❌ 未达标
微服务覆盖率~45%70%⚠️ 接近
公共库覆盖率~15%50%⚠️ 接近

服务覆盖率排名

服务覆盖率目标值状态
agent93.5%85%✅ 达标
user良好70%⚠️ 接近
tenant一般70%⚠️ 接近
payment良好70%⚠️ 接近
auth良好70%⚠️ 接近
cron一般70%⚠️ 接近
integration极差70%❌ 严重不达标
gateway0.0%70%❌ 严重不达标

覆盖率详情

Agent服务 - 优秀

覆盖率: 93.5%
状态: ✅ 达标

测试文件数: 16个

测试亮点:

  • 完整的字段验证
  • 全面的场景覆盖
  • 严格的规范执行

测试示例:

func TestAgentCategoryService_CreateAgentCategory_Success(t *testing.T) {
mockDB, mock, svc := setupServiceTest(t)
defer mockDB.Close()

rows := sqlmock.NewRows([]string{"id"}).AddRow(int64(101))
mock.ExpectQuery(`INSERT INTO "agent_categories"`).WillReturnRows(rows)

resp, err := svc.CreateAgentCategory(context.Background(), req)
require.NoError(t, err)

// 完整字段验证
assert.Equal(t, int64(101), resp.Category.Id)
assert.Equal(t, int64(1), resp.Category.TenantId)
assert.Equal(t, "测试分类", resp.Category.Name)
// ... 所有字段验证
}

Gateway服务 - 严重问题

覆盖率: 0.0%
状态: ❌ 严重不达标

核心问题:

  • 几乎没有有效测试
  • 占位测试无实际价值
  • 缺少业务逻辑测试

改进建议:

  1. 实现函数字段Mock策略
  2. 补充路由代理测试
  3. 补充认证鉴权测试
  4. 达到90%覆盖率目标

Integration服务 - 严重问题

覆盖率: 极差
状态: ❌ 严重不达标

核心问题:

  • 只有1个配置加载测试
  • 核心功能无测试
  • 未使用mock框架

改进建议:

  1. 补充文件上传功能测试
  2. 补充短信服务测试
  3. 使用sqlmock + Ent ORM规范
  4. 达到90%覆盖率目标

覆盖率分析

按服务类型分析

核心业务服务

服务覆盖率状态
agent93.5%✅ 优秀
user良好⚠️ 良好
tenant一般❌ 需改进

支撑服务

服务覆盖率状态
payment良好⚠️ 良好
integration极差❌ 严重问题
cron一般❌ 需改进

基础服务

服务覆盖率状态
gateway0.0%❌ 严重问题
auth良好⚠️ 良好

按测试类型分析

单元测试覆盖率

服务覆盖率目标值状态
agent93.5%90%✅ 达标
user良好90%⚠️ 接近
tenant一般90%❌ 未达标
payment良好90%⚠️ 接近
auth良好90%⚠️ 接近
cron一般90%❌ 未达标
integration极差90%❌ 严重不达标
gateway0.0%90%❌ 严重不达标

集成测试覆盖率

服务覆盖率目标值状态
agent85%85%✅ 达标
user70%85%⚠️ 接近
tenant60%85%❌ 未达标
payment70%85%⚠️ 接近
auth70%85%⚠️ 接近
cron60%85%❌ 未达标
integration20%85%❌ 严重不达标
gateway0%85%❌ 严重不达标

覆盖率提升计划

阶段1 - 紧急修复(1周)

目标: 修复严重问题服务

  1. Gateway服务

    • 实现基础路由测试
    • 实现认证测试
    • 目标覆盖率: 50%
  2. Integration服务

    • 实现文件上传测试
    • 实现短信服务测试
    • 目标覆盖率: 50%

阶段2 - 重点提升(2周)

目标: 提升中等服务覆盖率

  1. Tenant服务

    • 补充边界场景测试
    • 补充错误场景测试
    • 目标覆盖率: 70%
  2. Cron服务

    • 补充定时任务测试
    • 补充错误处理测试
    • 目标覆盖率: 70%

阶段3 - 全面达标(1个月)

目标: 所有服务达到覆盖率目标

  1. User服务

    • 补充缺失场景测试
    • 目标覆盖率: 70%
  2. Payment服务

    • 补充支付流程测试
    • 目标覆盖率: 70%
  3. Auth服务

    • 补充认证流程测试
    • 目标覆盖率: 70%
  4. 公共库测试

    • 补充pkg公共库测试
    • 目标覆盖率: 70%

覆盖率监控

定期检查

# 每周生成覆盖率报告
cd backend
make test-coverage-report

# 查看覆盖率趋势
cat coverage-reports/coverage-summary.txt

覆盖率阈值

  • 整体项目: ≥ 70%
  • biz 层: ≥ 80%
  • data 层: ≥ 50%
  • service 层: ≥ 60%
  • AI / Agent 模块: ≥ 85%
  • 核心业务: ≥ 90%

覆盖率预警

  • 覆盖率 < 60%: 🔴 红色预警
  • 覆盖率 60% - 70%: ⚠️ 黄色预警
  • 覆盖率 ≥ 70%: ✅ 绿色达标

覆盖率工具

生成覆盖率报告

# 生成单个服务覆盖率
cd services/agent
go test ./internal/service/... -coverprofile=coverage.out
go tool cover -html=coverage.out -o coverage.html

# 生成所有服务覆盖率
cd backend
make test-coverage-summary
make test-coverage-html
make test-coverage-report

查看覆盖率详情

# 查看函数级别覆盖率
go tool cover -func=coverage.out

# 查看HTML报告
open coverage.html

覆盖率最佳实践

1. 持续监控

# 每次提交前检查覆盖率
make test-coverage

# CI/CD中集成覆盖率检查

2. 设定目标

# 设定覆盖率阈值
go test ./... -coverprofile=coverage.out -covermode=atomic
go tool cover -func=coverage.out | grep total

3. 趋势分析

# 保存历史覆盖率数据
mkdir -p coverage-history
cp coverage.out coverage-history/$(date +%Y%m%d).out

# 分析覆盖率趋势
# (需要自定义脚本)

参考资料


最后更新: 2025-12-29