You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

9.8 KiB

测试文档结构优化 - 混合方案

日期: 2026-02-02
类型: Documentation Optimization
影响范围: 测试规范文档、文档结构

概述

优化 testing.md 文档结构,将详细内容拆分到专题文件,提高文档可读性和 AI 加载效率。

背景

问题

testing.md 文件大小达到 80K(3009 行),存在以下问题:

  1. 文件过大

    • 80K 是所有 reference 文件中最大的
    • 超过了 backend.md(63K)
    • 可能影响 AI 加载和理解效率
  2. 内容重复

    • 事件循环修复方案在多个地方重复
    • 代码示例重复出现
    • 最佳实践分散在多个章节
  3. 结构复杂

    • 章节嵌套较深
    • 交叉引用较多
    • 难以快速定位信息

对比其他文件

文件 大小 行数
backend.md 63K ~2400
database.md 40K ~1500
infrastructure.md 24K ~900
testing.md 80K 3009

优化方案

方案选择

评估了三种方案:

  1. 方案 1:拆分文件 - 拆分为多个独立文件
  2. 方案 2:精简内容 - 保持单文件,删减内容
  3. 方案 3:混合方案 - 主文件 + 专题文件( 采用)

采用方案 3 的理由

优点

  • 平衡详细性和可读性
  • 核心内容集中在主文件
  • 高级内容独立成专题
  • 易于维护和扩展

实施策略

  1. 保留 testing.md 作为主文件(核心配置和最佳实践)
  2. 创建专题文件 testing-event-loop-fix.md(详细原理和深入讲解)
  3. 利用 Changelog 记录历史演进

实施内容

1. 创建专题文件:testing-event-loop-fix.md

文件大小:14K(546 行)

内容结构

# FastAPI + asyncpg + httpx.AsyncClient 事件循环修复详解

## 目录
- 问题描述
- 根本原因分析
- 完整修复方案
- 修复效果对比
- 技术原理深入
- 常见误区
- 验证方法

包含内容

  • 完整的问题分析(错误信息、表现、典型场景)
  • 根本原因深入讲解(4 个关键点)
  • 详细的修复步骤(5 个步骤,每步都有详细说明)
  • 技术原理深入(事件循环作用域、asyncpg 绑定机制)
  • 常见误区(3 个误区及正确做法)
  • 验证方法(3 种验证方式)

2. 精简主文件:testing.md

优化前:80K(3009 行)
优化后:76K(2858 行)
减少:4K(151 行,5%)

精简内容

  • 移除详细的原理说明(保留在专题文件)
  • 移除重复的代码示例
  • 移除过于详细的修复过程(保留摘要)

保留内容

  • 快速参考的核心配置
  • 核心 Fixtures 使用指南
  • 常见问题快速解决方案
  • 指向详细文档的链接

新增内容

## FastAPI + asyncpg + httpx.AsyncClient 事件循环修复

### 快速参考

**问题**:`RuntimeError: Task got Future attached to a different loop`

**核心解决方案**:使用 session 级别的事件循环和数据库引擎

[核心代码示例...]

**完整文档**:请参考 [FastAPI + asyncpg + httpx.AsyncClient 事件循环修复详解](./testing-event-loop-fix.md)

**相关文档**- [pytest 事件循环修复 Changelog](../../../docs/server/changelogs/2026-02-02-pytest-event-loop-fix.md)
- [事件循环修复详解](./testing-event-loop-fix.md)

3. 更新交叉引用

主文件 → 专题文件

**完整文档**:请参考 [FastAPI + asyncpg + httpx.AsyncClient 事件循环修复详解](./testing-event-loop-fix.md)

专题文件 → 主文件

**相关文档**:
- [测试规范主文档](./testing.md)
- [pytest 事件循环修复 Changelog](../../../docs/server/changelogs/2026-02-02-pytest-event-loop-fix.md)

常见问题 → 专题文件

**完整修复方案**:请参考 [FastAPI + asyncpg + httpx.AsyncClient 事件循环修复](#fastapi--asyncpg--httpxasyncclient-事件循环修复) 章节。

优化效果

文件大小对比

文件 优化前 优化后 变化
testing.md 80K (3009 行) 76K (2858 行) -4K (-151 行, -5%)
testing-event-loop-fix.md - 14K (546 行) +14K (+546 行)
总计 80K 90K +10K (+12.5%)

说明

  • 主文件减少 5%,更易于快速查找
  • 新增专题文件 14K,提供深入学习
  • 总大小增加 12.5%,但结构更清晰
  • 内容没有丢失,只是重新组织

结构优化

主文件(testing.md)

定位:快速参考和核心配置

内容

  • 测试金字塔
  • 测试目录结构
  • 事件循环修复快速参考(新增)
  • 常用 Fixtures 使用指南
  • 集成测试认证模式
  • API 响应格式处理
  • 常见字段名称规范
  • 测试类型和策略
  • 共享 Fixtures
  • 测试环境
  • 最佳实践
  • 故障排查
  • 持续集成
  • 测试代码最佳实践
  • 常见问题与解决方案
  • 测试覆盖率要求

特点

  • 聚焦常用内容
  • 快速查找
  • 清晰的导航

专题文件(testing-event-loop-fix.md)

定位:深入学习和技术原理

内容

  • 问题描述(错误信息、表现、典型场景)
  • 根本原因分析(4 个关键点)
  • 完整修复方案(5 个步骤)
  • 修复效果对比
  • 技术原理深入(事件循环作用域、asyncpg 绑定机制)
  • 常见误区(3 个误区及正确做法)
  • 验证方法(3 种验证方式)

特点

  • 完整的技术细节
  • 深入的原理讲解
  • 独立的目录结构

用户体验改进

1. 快速查找(主文件)

场景:开发者需要快速查找测试配置

改进前

  • 需要在 3009 行中查找
  • 详细内容干扰快速定位
  • 重复内容增加阅读负担

改进后

  • 在 2858 行中查找(减少 5%)
  • 核心配置一目了然
  • 清晰的导航链接

2. 深入学习(专题文件)

场景:开发者需要理解事件循环修复的原理

改进前

  • 内容分散在主文件多个章节
  • 难以系统学习
  • 缺少完整的技术细节

改进后

  • 独立的专题文件
  • 完整的技术细节
  • 系统的学习路径

3. AI 加载效率

改进前

  • 单个 80K 文件
  • 加载时间较长
  • 上下文冗余

改进后

  • 主文件 76K(减少 5%)
  • 专题文件 14K(按需加载)
  • 减少上下文冗余

导航路径

主文件(testing.md)
├─ 快速参考 → 专题文件(深入学习)
├─ 快速参考 → Changelog(历史记录)
└─ 常见问题 → 专题文件(完整方案)

专题文件(testing-event-loop-fix.md)
├─ 返回 → 主文件(概览)
└─ 参考 → Changelog(历史记录)

技术细节

文件组织原则

  1. 主文件(testing.md)

    • 核心配置和最佳实践
    • 快速参考指南
    • 目标:40-50K(当前 76K,仍有优化空间)
  2. 专题文件(testing-event-loop-fix.md)

    • 深入的技术原理
    • 完整的修复方案
    • 目标:10-20K(当前 14K,符合预期)
  3. Changelog 文档

    • 历史演进记录
    • 详细的修复过程
    • 目标:按需查阅

内容分配策略

内容类型 主文件 专题文件 Changelog
核心配置
快速参考
代码示例 简化 完整 完整
原理说明
技术细节
常见误区 摘要 详细
验证方法
历史记录

影响范围

受益对象

  1. 新加入的开发者

    • 快速了解测试配置(主文件)
    • 深入学习技术原理(专题文件)
    • 避免常见问题
  2. 现有团队成员

    • 快速查找配置(主文件)
    • 参考完整方案(专题文件)
    • 提高开发效率
  3. AI 助手

    • 更快的加载速度
    • 更清晰的上下文
    • 更准确的理解

文档更新

  • .claude/skills/jointo-tech-stack/references/testing.md - 精简主文件
  • .claude/skills/jointo-tech-stack/references/testing-event-loop-fix.md - 新建专题文件
  • docs/server/changelogs/2026-02-02-testing-best-practices-integration.md - 更新
  • docs/server/changelogs/2026-02-02-testing-documentation-optimization.md - 本文档

后续优化建议

短期(1-2 周)

  • 监控团队使用反馈
  • 评估主文件是否需要进一步精简
  • 考虑创建更多专题文件(如 testing-best-practices.md)

中期(1-2 月)

  • 评估其他大型文档是否需要类似优化
  • 建立文档大小监控机制
  • 制定文档拆分标准(如 > 60K 考虑拆分)

长期(3-6 月)

  • 建立文档结构最佳实践
  • 定期审查和优化文档结构
  • 培训团队文档编写规范

相关文档

总结

通过采用混合方案优化测试文档结构,我们成功:

  1. 减少主文件大小 5%(80K → 76K)
  2. 创建专题文件提供深入学习(14K)
  3. 保持内容完整性(无内容丢失)
  4. 提高文档可读性和导航性
  5. 改善 AI 加载效率
  6. 建立清晰的文档组织模式
  7. 为未来文档优化提供参考

这种混合方案平衡了详细性和可读性,既保留了完整的技术细节,又提供了快速参考的便利性,为团队提供了更好的文档体验。