我无法使用 VS Code 在 docker 容器中设置 py.test 代码的调试。
在研究了这个之后:https ://code.visualstudio.com/docs/python/debugging 这个:How to remote debug python code in a Docker Container with 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()
我确保我在 docker-compose 文件中打开了 3000 端口:
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 的事实有关。
有没有人设法做到这一点?我会很感激一些帮助。