У меня проблемы с настройкой отладки кода py.test в контейнере докеров с использованием VS Code.
Изучив это: https://code.visualstudio.com/docs/python/debugging И это: Как удаленно отлаживать код Python в контейнере Docker с помощью VS Code
Я установил следующую конфигурацию отладки в vscode:
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/capi",
"port": 3000,
"secret": "secret_text",
"host": "localhost"
}
Я импортировал этот бит в свой тестовый файл:
import ptvsd
ptvsd.enable_attach("secret_text", address = ('0.0.0.0', 3000))
ptvsd.wait_for_attach()
И я убедился, что открываю этот порт 3000 в файле docker-compose:
ports:
- 3000:3000
Я дважды проверил, что порт открыт:
nmap -p 3000 localhost
Starting Nmap 7.60 ( https://nmap.org ) at 2018-07-19 10:53 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000074s latency).
PORT STATE SERVICE
3000/tcp open ppp
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
Кажется, это так. Когда я запускаю файл pytest из контейнера, он запускается и ждет подключения отладчика:
===================================================== test session starts =====================================================
platform linux2 -- Python 2.7.15, pytest-3.5.1, py-1.5.3, pluggy-0.6.0
rootdir: /capi, inifile:
plugins: requests-mock-1.5.0, xdist-1.14, metadata-1.7.0, html-1.16.1, cov-2.5.1
collecting 0 items
Но когда я запускаю эту конфигурацию из VS Code, похоже, ничего не происходит.
Кажется, зависает. Ничего в консоли отладки или в контейнере докера.
Я настроил удаленную отладку для простого консольного приложения hello-world.py только для тестирования, и, похоже, оно работает. Итак, я предполагаю, что это как-то связано с тем, что я пытаюсь отладить pytest.
Кому-нибудь удалось это сделать? Буду признателен за помощь.