VS Code中调试ut_runner测试:如何避免先执行完成再调试?
解决VS Code中ut_runner调试前强制执行完测试的问题
方法1:单独调试目标测试用例
- 不要直接启动整个测试套件的调试,在测试文件里找到陷入无限循环的目标用例,右键选择**"Debug Test"**(不同语言的测试插件显示可能略有差异,比如Python的pytest会显示"Debug Current Test"),这样ut_runner会直接启动单个测试的调试流程,不会等待整个套件执行完成。
- 若通过配置文件管理测试,可修改
launch.json指定仅运行目标用例。以Python的pytest为例:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Debug Single Test", "type": "python", "request": "launch", "module": "pytest", "args": ["tests/test_demo.py::test_infinite_loop"], "justMyCode": true } ] }
方法2:修改配置禁用调试前预执行
- 打开VS Code设置(快捷键
Ctrl+,/Cmd+,),搜索对应测试框架的ut_runner配置项。比如针对C++的Google Test扩展,查找C_Cpp: Tests Prelaunch Task并设置为none,取消调试前的预执行任务。 - 也可直接在
settings.json中添加配置,以Python测试为例:
{ "python.testing.pytest.preLaunchTask": "" }
方法3:手动打断循环进入调试
- 先启动调试,当测试陷入无限循环后,点击VS Code调试面板的**"Pause"**按钮(暂停图标),调试器会暂停在当前执行的代码行,此时可查看调用栈、变量值定位问题。
- 若暂停后无法直接定位,可在怀疑的代码行手动添加断点,再点击**"Restart"**,调试器会在断点处停下,逐步排查循环逻辑。
内容的提问来源于stack exchange,提问作者ROBERT RICHARDSON
相关产品推荐
相关产品推荐

