blob: 26ab7028b0d1ff3bc732336ae44952dd81255ce9 [file] [log] [blame] [view] [raw]
# 覆盖率测试脚本使用指南
本项目提供了两个便于使用的覆盖率测试脚本,支持不同的使用场景。
## 📁 脚本文件
- `scripts/coverage.sh` - 简化版Bash脚本,适合日常使用
- `scripts/run_coverage.py` - 功能完整的Python脚本,支持高级选项
## 🚀 快速开始
### 基本用法(推荐)
```bash
# 进入项目根目录
cd /home/bmy001/Work/aichatbot
# 运行基本覆盖率测试
./scripts/coverage.sh
# 运行详细覆盖率测试(显示缺失行号)
./scripts/coverage.sh --detailed
# 生成HTML报告
./scripts/coverage.sh --html
# 运行完整分析
./scripts/coverage.sh --detailed --html --analysis
```
### 使用Python脚本
```bash
# 基本用法
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` - 指定测试模块
## 🎯 使用场景
### 日常开发检查
```bash
# 快速检查当前覆盖率
./scripts/coverage.sh
# 查看具体缺失的代码行
./scripts/coverage.sh -d
```
### 详细分析
```bash
# 生成完整的分析报告
./scripts/coverage.sh -d -h -a
# 或使用Python脚本
python scripts/run_coverage.py --format both --detailed --analysis
```
### 特定模块测试
```bash
# 只测试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. **脚本无法执行**
```bash
chmod +x scripts/coverage.sh
```
2. **虚拟环境不存在**
```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
3. **测试超时**
```bash
# 增加超时时间
./scripts/coverage.sh --timeout 300
```
4. **缓存问题**
```bash
# 清理缓存后再测试
python scripts/run_coverage.py --clean
```
## 💡 最佳实践
1. **定期检查**:建议每次提交代码前运行覆盖率测试
2. **HTML报告**:使用HTML报告深入分析未覆盖的代码
3. **模块分析**:使用模块分析功能识别需要改进的模块
4. **详细模式**:开发时使用详细模式查看具体缺失的代码行
## 🎯 覆盖率目标
- **整体目标**:≥ 80%
- **关键模块目标**:≥ 90%
- **工具模块目标**:≥ 95%
- **接口模块目标**:100%
## 📈 持续改进
使用这些脚本可以:
- 跟踪覆盖率变化趋势
- 识别需要测试的代码区域
- 确保新功能有完整的测试覆盖
- 维护高质量的代码库