如何在VS Code中设置快捷键调试指定pytest测试用例?
如何通过修改launch.json实现F5调试单个pytest测试用例(含parametrize场景)
完全可以通过定制.vscode/launch.json实现按下F5直接调试指定的单个pytest测试用例,包括parametrize生成的参数化用例,无需依赖pytest.skip或testing.debugAtCursor(后者会跑全量参数化用例)。
核心思路
利用pytest的-k参数精准匹配测试用例名称,结合VSCode的变量(如${selectedText}、输入框变量)动态指定要调试的用例,再将这个配置绑定到F5快捷键。
具体配置步骤
- 打开
.vscode/launch.json(如果没有则通过调试面板的"创建launch.json文件"生成) - 添加以下调试配置:
{ "version": "0.2.0", "configurations": [ // 方式1:选中测试用例名称后按F5调试 { "name": "Debug Selected Pytest Case", "type": "python", "request": "launch", "module": "pytest", "args": [ "-k", "${selectedText}", "${file}" // 可选:限制仅在当前打开文件中查找用例,提升效率 ], "console": "integratedTerminal", "justMyCode": true }, // 方式2:通过输入框指定用例名称调试 { "name": "Debug Pytest Case by Name", "type": "python", "request": "launch", "module": "pytest", "args": [ "-k", "${input:testCaseName}" ], "console": "integratedTerminal", "justMyCode": true } ], "inputs": [ { "id": "testCaseName", "type": "promptString", "description": "输入测试用例完整名称(例如:test_calculate[add-2-3-5])" } ] }
使用方法
方式1:选中名称快速调试
- 先获取目标测试用例的完整名称:
- 若为普通用例,名称就是函数名(如
test_login_success) - 若为
parametrize生成的参数化用例,可在终端执行pytest -v 你的测试文件.py,输出中会显示类似test_calculate[add-2-3-5]的完整名称
- 若为普通用例,名称就是函数名(如
- 在代码中选中这个完整名称(包括方括号及内部内容)
- 按下F5即可启动该用例的调试(确保该配置是默认调试项,或在调试面板选中它)
方式2:输入名称调试
- 在调试面板选中"Debug Pytest Case by Name"配置
- 按下F5,在弹出的输入框中粘贴或输入测试用例的完整名称
- 回车后开始调试指定用例
额外技巧
- 将常用的配置放在
configurations数组的第一个位置,这样F5会默认触发它 - 可以给
args添加-x参数,让pytest在测试失败时立即停止调试 - 若要调试特定文件下的所有用例,可将
-k参数替换为具体的文件名,如"args": ["test_auth.py"]
内容的提问来源于stack exchange,提问作者wordhydrogen
相关产品推荐
相关产品推荐

