# util-test-agent **Repository Path**: chenfoxin/util-test-agent ## Basic Information - **Project Name**: util-test-agent - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-10 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 自动化测试智能体 基于 JaCoCo 覆盖率报告和阿里云 Qwen API,自动为 Java 项目生成单元测试代码。 ## ✨ 功能特性 - 📊 **智能分析覆盖率**:解析 JaCoCo XML 报告,按未覆盖复杂度排序 - 🎯 **精准定位**:只为覆盖率低且未覆盖复杂度高的类生成测试 - 🤖 **AI 自动生成**:调用 Qwen API 生成完整的 JUnit 5 测试代码 - 💰 **智能模型降级**:优先使用免费模型,自动降级到付费模型 - ⚙️ **配置化管理**:支持环境变量和命令行参数灵活配置 ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 复制配置模板: ```bash cp .env.example .env ``` 编辑 `.env` 文件,填入你的配置: ```env # API Key (必填) DASHSCOPE_API_KEY=sk-your-api-key-here # 项目路径 (必填,改为你的 Java 项目路径) PROJECT_ROOT=D:\your\java\project\path ``` ### 3. 生成 JaCoCo 报告 在你的 Java 项目中运行: ```bash mvn clean test jacoco:report ``` 这会在 `target/site/jacoco/jacoco.xml` 生成覆盖率报告。 ### 4. 运行智能体 ```bash python qwen_test_automator.py ``` ## 📋 配置说明 ### 环境变量配置(`.env` 文件) | 配置项 | 说明 | 默认值 | |--------|------|--------| | `DASHSCOPE_API_KEY` | 阿里云 API Key | 必填 | | `PROJECT_ROOT` | Java 项目根路径 | 必填 | | `MISSED_CXTY_THRESHOLD` | 未覆盖复杂度阈值 | 30 | | `INSTRUCTION_COVERAGE_THRESHOLD` | 指令覆盖率阈值 (%) | 20 | | `TEMPERATURE` | AI 生成温度参数 | 0.2 | | `MAX_TOKENS` | 最大生成 token 数 | 2048 | | `API_TIMEOUT` | API 请求超时 (秒) | 60 | ### 配置优先级 1. 环境变量(`.env` 文件) 2. 默认值 ## 🔧 高级用法 ### 临时指定项目路径 ```bash # Windows PowerShell $env:PROJECT_ROOT="D:\other\project" python qwen_test_automator.py # Linux/Mac PROJECT_ROOT="/path/to/project" python qwen_test_automator.py ``` ### 调整过滤阈值 只为覆盖率极低(<10%)且复杂度高(>=50)的类生成测试: ```env MISSED_CXTY_THRESHOLD=50 INSTRUCTION_COVERAGE_THRESHOLD=10 ``` ### 使用特定模型 编辑 `config.py` 中的 `MODEL_PRIORITY`: ```python # 只使用付费模型 self.MODEL_PRIORITY = [ ('qwen3.5-plus', 'Qwen3.5-Plus (付费)', False), ] ``` ## 📂 项目结构 ``` unit-test-agent/ ├── qwen_test_automator.py # 主程序 ├── config.py # 配置管理 ├── .env # 环境变量(自己创建) ├── .env.example # 配置模板 ├── requirements.txt # 依赖列表 └── README.md # 使用说明 ``` ## 🔍 工作原理 1. **解析 JaCoCo 报告**:读取 `jacoco.xml`,统计每个类的覆盖率指标 2. **筛选目标类**: - 未覆盖复杂度 (Missed Cxty) >= 阈值 - 指令覆盖率 < 阈值 3. **按优先级排序**:按 Missed Cxty 降序排列 4. **调用 AI 生成测试**:为每个类生成完整的 JUnit 5 测试代码 5. **保存到项目**:自动保存到 `src/test/java` 对应包路径 ## 💡 提示 - ✅ **首次运行**:建议先注释掉生成测试的代码,只查看分析结果 - ✅ **API Key**:从 [阿里云 DashScope](https://dashscope.console.aliyun.com/apiKey) 获取 - ✅ **免费额度**:智能体优先使用免费模型 (qwen-turbo, qwen-plus) - ✅ **批量处理**:可以循环处理多个类,建议先测试单个类 ## 🐛 故障排查 ### 问题:找不到 JaCoCo 报告 **解决**:确保已运行 `mvn clean test jacoco:report` ### 问题:API 调用失败 **解决**: 1. 检查 API Key 是否正确 2. 检查网络连接 3. 查看 `.env` 配置是否生效 ### 问题:源文件读取失败 **解决**:检查 `PROJECT_ROOT` 路径是否正确 ## 📝 许可证 本项目仅供学习和内部使用。 ## 🤝 贡献 欢迎团队成员提出改进建议!