microsoft / microsoft/vscode-python-debugger

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

Open
#459 0 comments 2 reactions 1 assignee View on GitHub

@eleanorjboyd is already working on this.

Since Sep 18, 2024.

triage-needed
Dominant language
TypeScript
Stars
181
Forks
126
Avg merge
2d 3h
Merged PRs (30d)
3

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.