>> start() Hello world """ test = 10 pri-6ren">
gpt4 book ai didi

python - 在 Visual Studio 代码调试器中测试 Doctests

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:13 25 4
gpt4 key购买 nike

假设我在foo.py中有如下代码:

def start():
"""
>>> start()
Hello world
"""
test = 10
print('Hello world')

通常,我会通过在终端中运行 pytest foo.py --doctest-modules -v 来运行 doctest。相反,我希望能够通过 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 调试配置时,doctests 仅在内置终端中运行——调试器面板中没有显示任何内容。我应该如何配置调试器才能使用其变量和调用堆栈?

最佳答案

VSCode 35.x(至少)似乎内置了对 PyTest 的支持,并且不需要 launch.json 部分:

这些是我相关的.vscode/settings.json

{
"python.pythonPath": "venv/bin/python",
"python.testing.pyTestArgs": [
"--doctest-modules",
"--doctest-report", "ndiff",
],
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pyTestEnabled": true
}

当然,我在指定的虚拟环境中安装了 pytest

如果你需要配置 PyTest,你可以像往常一样在其中一个中设置它们

pyproject.tomlsetupcfgpytest.initox.ini设置。配置文件:

[tool:pytest]
addopts = --doctest-modules --doctest-report ndiff
doctest_optionflags= NORMALIZE_WHITESPACE ELLIPSIS

关于python - 在 Visual Studio 代码调试器中测试 Doctests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51192937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com