Я настроил следующий раздел в файле launch.json для «Отладочного теста»:
Код: Выделить всё
{
"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)
}
Код: Выделить всё
{
"python.testing.pytestArgs": [
"backend/tests"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
}
Код: Выделить всё
/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 ===================================
У меня нет Установлен «pytest-cov», присутствие которого было упомянуто как возможный виновник в другом сообщении.
Я попробовал проверить, используется ли профиль launch.json, изменив там аргументы и посмотрев если они также изменяются в журнале выполнения, что, похоже, не так (все еще используются те же параметры). Настройки из файла settings.json, похоже, используются.
Кроме того, можно вручную выбрать профиль «Отладочный тест» в разделе тестирования, но для него всегда отображается только один профиль по умолчанию. выбирать, даже если я добавлю в файл launch.json что-то еще с той же «целью»: «debug-test» (может быть, это не так работает?).
Я тоже пробовал очистка кеша Python и отладчика Python и перезапуск, но это ничего не меняет (кроме необходимости повторно выбирать правильный интерпретатор из моей виртуальной среды Python).
Когда я отлаживаю нормально, это работает хорошо, и все точки останова, которые я ожидаю достичь, активируют отладчик. Это обычный профиль отладки:
Код: Выделить всё
{
"name": "Python: FastAPI with Uvicorn",
"type": "debugpy",
"request": "launch",
"module": "backend.api",
"cwd":"${workspaceFolder}",
"console": "integratedTerminal",
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
"justMyCode": true
}
Еще одно Следует отметить, что я использую VSCode через сеанс SSH на локальной виртуальной машине.
Подробнее здесь: https://stackoverflow.com/questions/789 ... -in-vscode