假设我在
foo.py
中有以下代码:
def start():
"""
>>> start()
Hello world
"""
test = 10
print('Hello world')
通常,我会通过在终端中运行
pytest foo.py --doctest-modules -v
来运行文档测试。相反,我希望能够通过 Visual Studio Code 的内置调试器来测试它,以跟踪变量和调用堆栈。
我的项目中有以下配置
launch.json
:
"name": "PyTest",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"module": "pytest",
"args": [
"${file}",
"--doctest-modules",
"-v"
],
"cwd": "${workspaceRoot}",
"env": {},
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"RedirectOutput"
]
但是,当我打开文件并在 VSCode 调试器中运行 PyTest 调试配置时,文档测试仅在内置终端中运行 - 调试器面板中没有显示任何内容。我应该如何配置调试器才能使用其变量和调用堆栈?
VSCode 35.x(至少)似乎内置了对 PyTest 的支持, 并且不需要
launch.json
部分:
这些是相关的
.vscode/settings.json
{
"python.testing.pytestArgs": [
"--doctest-modules",
"--doctest-report", "ndiff",
],
"python.testing.pytestEnabled": true
}
当然,我在指定的虚拟环境中安装了pytest。
如果您需要配置 PyTest,您可以像往常一样在其中之一进行配置
pyproject.toml
、setup.cfg
、pytest.ini
、tox.ini
、setup.cfg
文件:
[tool:pytest]
addopts = --doctest-modules --doctest-report ndiff
doctest_optionflags= NORMALIZE_WHITESPACE ELLIPSIS