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.inipyproject.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。

相关推荐:

小米汽车确认澎程不是子品牌:计划发布两款车,投入 566 台测试车、路测超 428 万公里

感谢网友会弹琴的九号、Autumn_Dream、不一样的体验的线索投递! 7月10日消息,小米汽车今日发布答网友问(第258集),回答了“小米澎程跟小米汽车是什么关系?”“为什么小米汽车要做一个新系列?”等问题。整理如下:1、小米澎程是什么?跟小米汽车是什么关系?跟SU7、YU7是什么关系?小米澎程...

库洛游戏《鸣潮》鸿蒙端 7 月 10 日开启不删档测试

感谢网友星河之梦、肖战割割、MeoW粉丝小明、长在红旗下的线索投递! 6月27日消息,库洛游戏官方此前已宣布《鸣潮》HarmonyOS鸿蒙原生版本即将上线。今日有玩家发现,《鸣潮》鸿蒙版已在华为游戏中心开启预约,显示将于7月10日开启不删档测试。在今晚的直播中,《鸣潮》官方宣布3.5版本「遗音扶剑,...

火山引擎发布豆包音频生成模型 1.0,支持多模态参考生成与长时音色一致性

感谢网友龙爪槐守望者的线索投递! 6月24日消息,昨天火山引擎正式发布了豆包音频生成模型1.0(Doubao-Seed-Audio1.0),首次支持参考生成:把文本、音频任一模态作为输入,可以端到端生成目标音频。并且,它能在长时生成场景中保持多角色音色的一致性,大幅减少后期修音工作。借由豆包音频生成...

经典游戏《冒险岛》怀旧服第二次非公开测试定档 7 月 2 日

感谢网友不一样的体验、吉茵珂絲的线索投递! 6月24日消息,经典游戏《冒险岛》怀旧服今日宣布,第二次非公开测试定档7月2日。《冒险岛》怀旧服第二次非公开测试正式定档于7月2日,具体开服时间敬请留意后续官网公告。本次测试资格发放规则如下:-在上一次测试期间登陆过游戏的玩家账号,将自动获取二次测试资格。...

中美合拍:Utopai Studios 与华策影视将共同制作全 AI 生成《西游记》动画

感谢网友会弹琴的九号、不一样的体验的线索投递! 6月23日消息,据《综艺》杂志当地时间22日报道,美国AI公司UtopaiStudios与华策影视宣布达成战略合作,首个项目将以中国文学名著《西游记》为基础,制作一部完全由AI生成的动画剧集《西游记:失落的五百年》。《西游记:失落的五百年》将填补原著中...

微博 CEO 王高飞澄清“被金山 WPS 背刺”言论:系 AI 生成“自己养的虾发的”

感谢网友晚风叙旧、不一样的体验的线索投递! 6月21日消息,今天有话题“被wps背刺了”登上微博热搜,话题核心内容聚焦在金山WPS存储占用、数据安全与商业策略这几个核心痛点上。参考“观察者网”微博,有网友发现微博CEO王高飞(@来去之间)“也参与到这个热搜话题”,相关博文声称“被WPS背刺了?我们真...

消息称某厂新旗舰测试新一代 2K 级超清显示 + 防窥,预计为小米 18 Pro

感谢网友软媒用户1552043、顺势而为、Autumn_Dream、雨雪载途、不一样的体验、软媒新友2314428的线索投递! 6月22日消息,据博主@数码闲聊站今日爆料,某厂母系迭代新旗舰,Pro系列测试新一代2K级超清显示+防窥显示技术,软硬件支持全方位隐私防护。评论区有网友推测为小米18Pro...

阿里巴巴发布视频生成模型 HappyHorse 1.1:更强动态表现力、更高生成一致性、更优视觉质感

感谢网友华南吴彦祖的线索投递! 6月22日消息,今日阿里巴巴发布视频生成模型HappyHorse1.1,较1.0版本,在动态表现力、主体一致性、指令遵循、视觉质感和音频能力等维度系统性升级。HappyHorse官网、阿里云百炼和千问云均已接入最新版本。在技术规格上,HappyHorse1.1与1.0...