覆盖率测试脚本使用指南

本项目提供了两个便于使用的覆盖率测试脚本,支持不同的使用场景。

📁 脚本文件

  • scripts/coverage.sh - 简化版Bash脚本,适合日常使用
  • scripts/run_coverage.py - 功能完整的Python脚本,支持高级选项

🚀 快速开始

基本用法(推荐)

# 进入项目根目录
cd /home/bmy001/Work/aichatbot

# 运行基本覆盖率测试
./scripts/coverage.sh

# 运行详细覆盖率测试(显示缺失行号)
./scripts/coverage.sh --detailed

# 生成HTML报告
./scripts/coverage.sh --html

# 运行完整分析
./scripts/coverage.sh --detailed --html --analysis

使用Python脚本

# 基本用法
python scripts/run_coverage.py

# 详细报告
python scripts/run_coverage.py --detailed

# 生成HTML报告
python scripts/run_coverage.py --format html

# 运行模块分析
python scripts/run_coverage.py --analysis

# 组合使用
python scripts/run_coverage.py --format both --detailed --analysis --clean

📊 脚本功能

coverage.sh (Bash脚本)

优点

  • 简单易用,启动快速
  • 自动环境管理
  • 清理缓存文件
  • 支持超时控制

选项

  • -d, --detailed - 显示详细覆盖率报告(缺失行号)
  • -h, --html - 生成HTML报告
  • -a, --analysis - 运行模块覆盖率分析
  • -t, --timeout N - 设置超时时间(默认:180秒)
  • --help - 显示帮助信息

run_coverage.py (Python脚本)

优点

  • 功能更完整
  • 更好的错误处理
  • 支持模块选择
  • 丰富的报告格式

选项

  • --format/-f {term,html,both} - 报告格式
  • --detailed/-d - 显示详细信息
  • --analysis/-a - 运行模块分析
  • --clean/-c - 测试前清理缓存
  • --timeout/-t N - 超时时间
  • --modules/-m - 指定测试模块

🎯 使用场景

日常开发检查

# 快速检查当前覆盖率
./scripts/coverage.sh

# 查看具体缺失的代码行
./scripts/coverage.sh -d

详细分析

# 生成完整的分析报告
./scripts/coverage.sh -d -h -a

# 或使用Python脚本
python scripts/run_coverage.py --format both --detailed --analysis

特定模块测试

# 只测试telegram模块
python scripts/run_coverage.py --modules telegram --detailed

# 测试多个模块
python scripts/run_coverage.py --modules telegram core --format html

📋 输出示例

基本覆盖率报告

🔍 运行覆盖率测试 (超时: 180s)...

Name                                               Stmts   Miss  Cover
------------------------------------------------------------------------
src/claude_agent/core/agent.py                       444    233    48%
src/claude_agent/telegram/message_handler.py         545     85    84%
src/claude_agent/utils/helpers.py                    134      0   100%
------------------------------------------------------------------------
TOTAL                                               4547   1550    66%

✅ 覆盖率测试完成

模块分析报告

🔬 分析各模块覆盖率...

模块覆盖率汇总:
------------------------
  storage: ✅ 84%
  telegram: ✅ 85%
  cli: ✅ 95%
  utils: ✅ 93%
  mcp: ✅ 100%
  core: ✅ 48%

🛠️ 故障排除

常见问题

  1. 脚本无法执行

    chmod +x scripts/coverage.sh
    
  2. 虚拟环境不存在

    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    
  3. 测试超时

    # 增加超时时间
    ./scripts/coverage.sh --timeout 300
    
  4. 缓存问题

    # 清理缓存后再测试
    python scripts/run_coverage.py --clean
    

💡 最佳实践

  1. 定期检查:建议每次提交代码前运行覆盖率测试
  2. HTML报告:使用HTML报告深入分析未覆盖的代码
  3. 模块分析:使用模块分析功能识别需要改进的模块
  4. 详细模式:开发时使用详细模式查看具体缺失的代码行

🎯 覆盖率目标

  • 整体目标:≥ 80%
  • 关键模块目标:≥ 90%
  • 工具模块目标:≥ 95%
  • 接口模块目标:100%

📈 持续改进

使用这些脚本可以:

  • 跟踪覆盖率变化趋势
  • 识别需要测试的代码区域
  • 确保新功能有完整的测试覆盖
  • 维护高质量的代码库