You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code中设置快捷键调试指定pytest测试用例?

如何通过修改launch.json实现F5调试单个pytest测试用例(含parametrize场景)

完全可以通过定制.vscode/launch.json实现按下F5直接调试指定的单个pytest测试用例,包括parametrize生成的参数化用例,无需依赖pytest.skip或testing.debugAtCursor(后者会跑全量参数化用例)。

核心思路

利用pytest的-k参数精准匹配测试用例名称,结合VSCode的变量(如${selectedText}、输入框变量)动态指定要调试的用例,再将这个配置绑定到F5快捷键。

具体配置步骤

  1. 打开.vscode/launch.json(如果没有则通过调试面板的"创建launch.json文件"生成)
  2. 添加以下调试配置:
{
  "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:选中名称快速调试

  1. 先获取目标测试用例的完整名称:
    • 若为普通用例,名称就是函数名(如test_login_success)
    • 若为parametrize生成的参数化用例,可在终端执行pytest -v 你的测试文件.py,输出中会显示类似test_calculate[add-2-3-5]的完整名称
  2. 在代码中选中这个完整名称(包括方括号及内部内容)
  3. 按下F5即可启动该用例的调试(确保该配置是默认调试项,或在调试面板选中它)

方式2:输入名称调试

  1. 在调试面板选中"Debug Pytest Case by Name"配置
  2. 按下F5,在弹出的输入框中粘贴或输入测试用例的完整名称
  3. 回车后开始调试指定用例

额外技巧

  • 将常用的配置放在configurations数组的第一个位置,这样F5会默认触发它
  • 可以给args添加-x参数,让pytest在测试失败时立即停止调试
  • 若要调试特定文件下的所有用例,可将-k参数替换为具体的文件名,如"args": ["test_auth.py"]

内容的提问来源于stack exchange,提问作者wordhydrogen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:33:13