# Cppcheck Test Generator 一个用于根据 cppcheck 报告生成可运行测试用例的模块化工具包。 ## 模块结构 ### `models.py` - 数据模型 - `CppcheckIssue`: cppcheck 问题信息 - `IssueLocation`: 问题位置信息 - `CodeContext`: 代码上下文信息 ### `parsers.py` - 解析器模块 - `parse_cppcheck_xml()`: 解析 XML 格式的 cppcheck 报告 - `parse_cppcheck_text()`: 解析文本格式的 cppcheck 报告 - `read_code_snippet()`: 读取代码片段 ### `analysis.py` - 代码分析模块 - `analyze_code_context()`: 分析代码上下文 - `analyze_issue_relevance()`: 分析问题相关性 - `analyze_project_structure()`: 分析项目结构 - `get_enhanced_issue_analysis()`: 获取增强的问题分析 - `filter_and_clean_issues()`: 过滤和清理问题 - `prioritize_issues()`: 问题优先级排序 ### `generation.py` - 测试用例生成模块 - `generate_test_for_issue()`: 使用 AI 生成测试用例 - `get_issue_specific_template()`: 获取问题特定的模板 - `smart_select_issues()`: 智能选择最有代表性的问题 - `write_issue_output()`: 写入问题输出文件 ### `verification.py` - 验证模块 - `verify_single_test()`: 验证单个测试用例 - `auto_verify_tests()`: 自动验证所有测试用例 - `generate_verification_report()`: 生成验证报告 ### `main.py` - 主程序入口 - `main()`: 主程序逻辑,处理命令行参数和协调各模块 ## 使用方法 ### 作为模块使用 ```python from cppcheck_test_generator import main main.main(['report.xml', '--out', 'tests', '--max', '5']) ``` ### 作为脚本使用 ```bash python cppcheck_to_tests_new.py report.xml --out tests --max 5 ``` ## 功能特性 - 支持 XML 和文本格式的 cppcheck 报告 - 智能分析代码上下文和项目结构 - AI 驱动的测试用例生成 - 自动验证生成的测试用例 - 智能筛选最有代表性的问题 - 生成详细的验证报告 ## 依赖 - Python 3.7+ - OpenAI API 客户端(用于 AI 生成) - g++ 编译器(用于验证) - cppcheck(用于验证) ## 迁移说明 从原始的 `cppcheck_to_tests.py` 迁移到新的模块化版本: 1. 所有功能保持不变 2. 命令行参数完全兼容 3. 输出格式保持一致 4. 性能没有变化 新的模块化结构提供了更好的: - 代码可维护性 - 功能扩展性 - 测试覆盖性 - 文档完整性