VSCode调试Python单个unittest方法时断点失效无输出问题问询
VSCode 调试 unittest 断点失效、无输出问题解决方案
基础运行环境
- Python: 3.8.5
- VSCode: 1.61.2
- 操作系统:虚拟机部署的 Ubuntu 20.04
问题表现
- 右键点击 unittest 方法左侧的绿色调试三角,选择「Debug Test」后,底部状态栏变为橙色显示「running tests...」,测试运行完成前绿色三角变为加载动画,但是所有已激活断点均无法命中,调试器不会在标记位置暂停
- Python Test Log 面板与当前活动终端无任何断言、print 输出内容
复现步骤
- 创建包含多个简单测试函数的 unittest 模块
- 在测试代码行添加激活状态的断点
- 对目标测试方法右键选择「Debug Test」即可复现问题
修复方案
1. 修正测试框架配置
打开工作区下的 .vscode/settings.json 文件,添加/修改如下配置,避免多测试框架冲突:
{ "python.testing.unittestEnabled": true, "python.testing.pytestEnabled": false, "python.testing.unittestArgs": [ "-v", "-s", "./", "-p", "test_*.py" ], "python.terminal.executeInFileDir": true }
如果你的测试文件命名不符合 test_*.py 规则,可修改 -p 参数后的匹配规则适配你的项目。
2. 新增 unittest 专用调试配置
打开工作区下的 .vscode/launch.json 文件,添加如下调试配置:
{ "version": "0.2.0", "configurations": [ { "name": "Python: 调试单测", "type": "python", "request": "launch", "module": "unittest", "args": ["${relativeFile}"], "justMyCode": false, "console": "integratedTerminal" } ] }
justMyCode 设为 false 可避免调试器跳过自定义的测试代码,console 指定为集成终端可保证输出正常展示。
3. 清理Python扩展缓存
按下Ctrl+Shift+P调出命令面板,执行「Python: Clear Internal Cache」命令,之后重启 VSCode 重新加载测试用例即可。
验证效果
完成配置后重新执行 Debug Test:
- 调试器可正常在断点位置暂停,支持逐行调试、变量查看等操作
- 所有 print 输出、断言报错信息均会同步展示在 Python Test Log 面板与集成终端中
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

