CodeBuddy怎么生成Pytest测试用例?Python测试框架代码自动化
CodeBuddy 支持五种生成 pytest 测试用例的方法:方法级触发、文件/目录级触发、快捷键触发、CLI 工具触发及对话模式定制化生成,覆盖精准单函数测试到批量自动化场景。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
如果您在使用 CodeBuddy 辅助编写 Python 测试代码,但尚未掌握其如何生成符合 pytest 规范的测试用例,则可能是由于未正确触发测试生成路径或未提供足够上下文信息。以下是实现该目标的具体方法:
一、方法级触发 pytest 单元测试生成
该方式适用于对单个函数或方法进行精准覆盖,CodeBuddy 会自动分析参数类型、返回值、异常分支及依赖关系,生成含边界值和错误路径的 pytest 测试用例,并默认采用 def test_* 命名风格与 assert 断言结构。
1、在 VS Code 中打开目标 Python 源文件,将光标定位在待测函数定义行上方或内部。
2、点击函数左侧出现的快捷功能按钮(图标为“?”),选择“Generate unit tests”。
3、圈选目标函数代码块,右键选择 Tencent Cloud CodeBuddy > Generate tests。
4、圈选代码后,将鼠标悬浮于代码区域,等待弹出悬浮菜单,点击 Generate unit tests。
5、圈选代码后,观察编辑器左侧边缘出现的小灯泡图标,单击后选择 CodeBuddy: Generate tests。
6、在左侧对话面板中,圈选代码区域后输入指令 /tests 并回车执行。
二、文件或目录级触发 pytest 批量测试生成
该方式适用于为整个模块或包批量生成 pytest 测试骨架,CodeBuddy 会自动识别项目结构、扫描已有 tests/ 目录、匹配 pytest 配置(如 pytest.ini 或 pyproject.toml),并为每个可测函数生成独立的 test_* 方法。
1、在 IDE 底部的对话输入框中,直接输入指令 /tests。
2、输入后通过 @ Add 添加一个或多个目标路径,例如:@ Add src/calculators.py 或 @ Add src/utils/。
3、在资源管理器的文件树中,右键单击某个 .py 文件,选择 CodeBuddy > Generate tests。
4、在资源管理器中,右键单击整个目录(如 src/models/),选择 Tencent Cloud CodeBuddy > Generate Tests。
三、使用快捷键触发 pytest 测试生成
该方式提供最高效的免鼠标操作路径,适用于高频测试生成场景,支持 Windows/Linux(Alt + Shift + T)与 macOS(Option + Shift + T)双平台绑定,触发后自动识别当前文件为 pytest 项目并生成适配结构。
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
1、确保光标位于待测 Python 文件内,无需选中任何内容。
2、按下快捷键组合:Alt + Shift + T(Windows/Linux)或 Option + Shift + T(macOS)。
3、等待 CodeBuddy 完成项目结构分析与 pytest 框架识别,点击继续以生成完整测试代码。
四、通过 CLI 工具触发 pytest 测试生成
该方式面向命令行工作流与自动化集成场景,CodeBuddy CLI 可在终端中直接解析本地工程,强制输出符合 pytest 命名规范与断言风格的测试文件,支持指定输出路径与覆盖率阈值。
1、在项目根目录下打开终端,执行初始化命令:codebuddy init,生成 CODEBUDDY.md 配置文件。
2、运行测试生成指令:codebuddy testgen --file src/services/math_service.py --framework pytest。
3、批量生成时使用:codebuddy testgen --dir src/logic/ --output tests/pytest/ --coverage 80。
4、生成后查看控制台输出的测试文件路径,确认 tests/pytest/test_math_service.py 已创建且含 @pytest.mark.parametrize 示例。
五、对话模式定制化生成 pytest 测试用例
该方式适用于复杂业务逻辑或需人工干预测试场景,支持自然语言描述预期行为、输入约束、异常条件与断言期望,CodeBuddy 将据此生成结构清晰、可读性强、符合 pytest 最佳实践的测试代码。
1、在 CodeBuddy 对话框中输入自然语言需求,例如:“为 process_order(order_id, amount) 函数生成 pytest 测试:正常订单返回 True;amount ≤ 0 时抛出 ValueError;order_id 为空字符串时抛出 ValidationError”。
2、若需指定 fixture,可追加说明:“使用 mock_database fixture 替换真实数据库调用”。
3、确认生成内容中包含 import pytest、@pytest.fixture(如需)、以及带注释的 test_* 函数。
4、检查断言是否使用 assert ... == ... 或 with pytest.raises(...) 形式,而非 print 或 logging。