microsoft / microsoft/vscode-python-debugger

"Debug Test" ignores breakpoints, seems to ignore "debug-test" profile in launch.json

未關閉
#459 0 則留言 2 個 reaction 已指派 1 人 在 GitHub 檢視

@eleanorjboyd 已經在處理了。

開始於 2024年9月18日。

triage-needed
主要語言
TypeScript
星號
180
分支
126
平均合併
2 天 3 小時
30 天內合併 PR
3

描述

Whenever I run "Debug Test" (from either the testing pane or by right clicking on the margin left of the code and selecting it) it runs the test just fine but it ignores breakpoints.

I've configured the following section in launch.json for "Debug Test":

        {
          "name": "Python: Debug Tests",
          "type": "debugpy",
          "request": "launch",
          "console": "integratedTerminal",
          "justMyCode": false,  // Set to false to step into external libraries if necessary
          "purpose": ["debug-test"],  // Enables this configuration for "Debug Test"
          "program": "${workspaceFolder}/backend/tests",
          "args": ["-m", "pytest", "--capture=no"]  // Run pytest with optional args (disable output capturing)
        }

I have the following settings.json:

{
    "python.testing.pytestArgs": [
        "backend/tests"
    ],
    "python.testing.unittestEnabled": false,
    "python.testing.pytestEnabled": true,
    
}

This is the output when I run "Debug Test":

/usr/bin/env /home/rolf/.virtualenvs/marquee/bin/python /home/rolf/.vscode-server/extensions/ms-python.debugpy-2024.10.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 35459 -- /home/rolf/.vscode-server/extensions/ms-python.python-2024.14.1-linux-x64/python_files/vscode_pytest/run_pytest_script.py --rootdir=/home/rolf/marquee --capture=no 
rolf@ubundev:~/marquee$  /usr/bin/env /home/rolf/.virtualenvs/marquee/bin/python /home/rolf/.vscode-server/extensions/ms-python.debugpy-2024.10.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 35459 -- /home/rolf/.vscode-server/extensions/ms-python.python-2024.14.1-linux-x64/python_files/vscode_pytest/run_pytest_script.py --rootdir=/home/rolf/marquee --capture=no 
Received JSON data in run script
Running pytest with args: ['-p', 'vscode_pytest', '--rootdir=/home/rolf/marquee', '--capture=no', '/home/rolf/marquee/backend/tests/test_gs_movie_db.py::test_get_movies']
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-8.3.2, pluggy-1.5.0
rootdir: /home/rolf/marquee
plugins: anyio-4.4.0
collected 1 item

backend/tests/test_gs_movie_db.py F

=================================== FAILURES ===================================

What follows is a bunch of failing tests that are beyond my breakpoint (so my breakpoint should have been triggered).

I don't have "pytest-cov" installed which presence was mentioned as a possible culprit.

I've tried testing wether the launch.json profile is being used by changing the args there and seeing if they also change in the execution log which doesn't seem to be the case (the same parameters are still used). The settings from settings.json do seem to be being used.

Also, it's possible to manually select a "Debug Test" profile in the testing section but it only ever shows one default profile to choose from even if I add more to the launch.json with the same "purpose": "debug-test" (maybe that's not how that works?).

I've also tried clearing both the Python and the Python Debugger cache and restarting but that doesn't change anything (except having to reselect the right interpreter from my Python virtual env).

When I debug normally it works fine and all breakpoints that I expect to hit activate the debugger. This is the regular debugging profile:

        {
            "name": "Python: FastAPI with Uvicorn",
            "type": "debugpy",
            "request": "launch",
            "module": "backend.api",
            "cwd":"${workspaceFolder}",
            "console": "integratedTerminal",
            "env": {
              "PYTHONPATH": "${workspaceFolder}"
            },
            "justMyCode": true
          }

I'm using VSCode 1.93.1, Python extension v2024.14.1, Python Debugger extension v2024.10.0 (latest versions).

I've also tried to switch to the pre-release version of the Python Debugger (+ clearing cache) but that doesn't seem to matter for this issue.

Another thing to note is that I'm using VSCode on MacOS over an SSH session on a local Ubuntu VM.

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。