# PowerTest **Repository Path**: xp_2133765105/power-test ## Basic Information - **Project Name**: PowerTest - **Description**: 一个基于pytest的交互式测试工具 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-22 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PowerTest - 高级单元测试框架 PowerTest 是一个专为 Python 项目设计的增强型单元测试框架,基于 pytest 构建,提供了强大的可视化界面、实时监控功能和灵活的扩展系统。 ## 🌟 核心特性 ### 1. 智能测试管理 - **自动测试发现**:智能识别项目中的测试文件和测试用例 - **批量测试执行**:支持单个文件、多个文件或全部测试的运行 - **精确测试定位**:可指定具体测试函数进行运行 - **并发用例收集**:使用多进程加速测试用例的收集过程 ### 2. 丰富的可视化界面 - **实时进度显示**:使用 Rich 库提供美观的进度条和状态信息 - **交互式菜单系统**:无需记忆命令,通过菜单即可操作所有功能 - **彩色输出**:支持语法高亮的测试结果展示 - **详细结果分析**:清晰的测试报告,包含通过/失败/跳过/错误统计 ### 3. 系统监控集成 - **性能监控扩展**:实时监控系统资源使用情况 - CPU 使用率监控 - 内存使用情况跟踪 - 磁盘读写监控 - 网络活动观察 - **实时调试面板**:在测试运行时显示调试信息 ### 4. 灵活的扩展系统 - **模块化架构**:支持功能扩展和工具扩展两种类型 - **生命周期钩子**:在测试的各个阶段触发自定义逻辑 - **后台任务支持**:扩展可在测试运行时执行后台监控任务 - **错误处理机制**:完善的异常处理和恢复机制 ## 🚀 快速开始 ### 安装 ```bash # 从源码安装 pip install -e . # 或直接从 PyPI 安装(发布时) pip install powertest ``` ### 基本使用 #### 交互式模式(推荐) ```bash powertest ``` 启动交互式菜单系统,通过方向键选择功能。 #### 命令行模式 ```bash # 运行所有测试 powertest --non-interactive all # 运行指定测试文件 powertest --non-interactive test_example.py # 运行指定测试函数 powertest --non-interactive test_example.py::test_function_name # 指定额外的 pytest 参数 powertest --non-interactive test_example.py -- -v -s ``` ### 项目结构要求 PowerTest 会自动识别以下目录结构: ``` your_project/ ├── tests/ # 测试文件目录 │ ├── test_*.py # 测试文件(符合 pytest 命名规范) │ └── ... ├── src/ # 源代码目录(可选) │ └── your_package/ └── powertest_config.json # 配置文件(自动生成) ``` ## 📊 功能详解 ### 测试用例收集 PowerTest 使用并发方式收集测试用例信息: - 自动发现符合 pytest 命名规范的测试文件 - 智能识别测试类和测试函数 - 提供测试用例总数统计 - 支持嵌套目录结构的测试发现 ### 测试结果分析 - **详细统计**:显示总测试数、通过数、失败数、跳过数、错误数 - **失败详情**:列出所有失败的测试用例及错误信息 - **执行时间**:精确到毫秒的执行时间统计 - **退出码解释**:清晰的测试状态说明 ### 系统资源监控 内置性能监控扩展可在测试运行时显示: - 实时 CPU 使用率 - 内存使用趋势 - 磁盘 I/O 活动 - 网络接口状态 ## 🔧 配置系统 ### 配置文件 首次运行时会自动生成 `powertest_config.json`: ```json { "tests_dir": "tests", "logs_dir": "powertest_logs", "extensions": { "enabled": true, "auto_load": true }, "plugins": [] } ``` ### 环境变量 - `POWERTEST_CONFIG_PATH`: 指定配置文件路径 - `POWERTEST_LOG_LEVEL`: 设置日志级别 (DEBUG, INFO, WARNING, ERROR) ## 🧩 扩展开发 PowerTest 提供了强大的扩展系统,支持两种扩展类型: ### 功能扩展(Feature Extension) 在测试运行时提供额外功能,如系统监控、调试信息显示等。 ### 工具扩展(Tool Extension) 添加新的菜单项和操作功能,如代码覆盖率分析、性能分析等。 (扩展开发详细文档将在后续版本中提供) ## 📈 性能优化 ### 并发收集 测试用例收集使用多进程并发执行,显著提升大型项目的启动速度。 ### 智能缓存 自动缓存测试文件信息,减少重复扫描时间。 ### 资源管理 后台任务使用事件机制优雅停止,避免资源泄漏。 ## 🛠️ 开发环境 ### 开发依赖 ```bash pip install -e ".[dev]" ``` ### 运行测试 ```bash pytest tests/ ``` ### 代码质量 ```bash # 格式化代码 black powertest/ # 类型检查 mypy powertest/ # 代码风格检查 flake8 powertest/ ``` ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🤝 贡献指南 我们欢迎所有形式的贡献! ### 报告问题 使用 GitHub Issues 报告 bug 或提出功能请求。 ### 提交代码 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ### 开发规范 - 遵循 PEP 8 代码风格 - 添加适当的类型注解 - 为新功能编写测试 - 更新相关文档 ## 🆘 常见问题 ### Q: PowerTest 找不到我的测试文件 A: 确保测试文件符合 pytest 命名规范(以 `test_` 开头),且位于配置的测试目录中。 ### Q: 如何禁用性能监控扩展 A: 在配置文件中移除 `"active_extensions": {}`内的扩展 或临时移除扩展文件。 ### Q: 测试运行很慢怎么办 A: 检查是否有大型测试文件,考虑使用 pytest-xdist 进行并行测试执行。 ### Q: 如何添加自定义 pytest 插件 A: 在配置文件的 `plugins` 部分添加插件配置,PowerTest 会自动传递给 pytest。 ## 📞 联系方式 - 项目地址: [https://gitee.com/xp_2133765105/power-test]