Kir*_*hxh 10 debugging pytest visual-studio-code
通过 GUI 调试单元测试时,我不知道如何配置 VS Code 以单步执行第三方代码。
注意:我使用工作区。
编辑:目前作为解决方法,我可以使用“运行和调试选项卡”中的此配置,我必须指定要运行的测试:
"configurations": [
{
"name": "Debug specific test",
"type": "python",
"module": "pytest",
"request": "launch",
"purpose": ["debug-test"],
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"explorer/test/test_projects_controller.py::TestProjectsController::test_get_metadata"
]
}
]``
Run Code Online (Sandbox Code Playgroud)
我尝试按照VS Code Python 文档“调试测试”部分中的说明进行操作,其中指出:
要自定义调试测试的设置,您可以在工作区文件夹中的文件
"purpose": ["debug-test"]
中指定。当您运行“测试:调试所有测试”、“测试:调试当前文件中的测试”和“测试:在光标处调试测试”命令时,将使用此配置。launch.json
.vscode
例如,
launch.json
文件中的以下配置禁用justMyCode
调试测试的设置:Run Code Online (Sandbox Code Playgroud){ "name": "Python: Debug Tests", "type": "python", "request": "launch", "program": "${file}", "purpose": ["debug-test"], "console": "integratedTerminal", "justMyCode": false }
如果您有多个带有 的配置条目
"purpose": ["debug-test"]
,则将使用第一个定义,因为我们目前不支持此请求类型的多个定义。
注意:我还看到旧的配置围绕该用途"request": "test"
而不是"purpose": ["debug-test"]
(例如this"purpose": ["debug-test"]
)浮动,因此如果不适合您,您可以尝试一下。
"debugStdLib": true
如果您想进入标准库的内容(源) ,似乎还有一个可以使用的属性。
有一个悬而未决的问题票证,这显然不适用于 Python 扩展的 2023.8.0 版本(#21249),但它将在更高版本中修复。也可能相关:Pytest restart debugger 仅适用于代码工作空间文件 #21365。
这是当前 VSCode 版本的限制:VSCode 仅使用launch.json
文件来配置 pytest 调试选项,它忽略工作区启动部分。
计划很快修复: https: //github.com/microsoft/vscode-python/issues/21249
作为解决方法,我们可以在文件中复制工作区启动部分.vscode/launch.json
,例如:
{
"configurations": [
{
"name": "Python: Debug Tests",
"type": "python",
"request": "launch",
"program": "${file}",
"purpose": ["debug-test"],
"console": "integratedTerminal",
"justMyCode": false,
"presentation": {
"hidden": true, // keep original launch order in 'run and debug' tab
}
},
],
"version": "0.2.0"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2541 次 |
最近记录: |