如何使用Visual Studio Code调试Google Test测试的C++应用并配置指定用例
我来帮你搞定VS Code调试Google Test项目的问题,刚好你给出的配置已经有了不错的基础,咱们一步步完善并验证它:
配置VS Code调试Google Test项目的完整步骤
前提准备
首先得确认两个关键点:
- 你的C++项目已经编译出了Google Test的可执行文件(也就是你提到的
unittests_feature1) - VS Code已经安装了C/C++扩展(这个是调试C++程序的核心依赖,没装的话先去扩展商店搜一下安装)
完善你的调试配置
你给出的配置已经完成了大部分核心内容,只需要补全缺失的部分并调整细节就行。打开VS Code的调试面板(快捷键Ctrl+Shift+D),点击「创建launch.json文件」(如果还没生成的话),选择「C++ (GDB/LLDB)」环境,然后把下面的完整配置替换进去:
{ "version": "0.2.0", "configurations": [ { "name": "Test_int", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/unittests_feature1", "args": ["--gtest_filter=Feature1.test_int"], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", // Windows下替换成gdb.exe的完整路径,比如"C:/MinGW/bin/gdb.exe" "setupCommands": [ { "description": "启用GDB的美观打印功能", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
关键配置项说明
program:你用${workspaceFolder}指定项目根目录下的可执行文件,这个没问题,确保该路径下确实存在unittests_feature1args:你已经正确添加了--gtest_filter=Feature1.test_int,这个参数就是Google Test用来指定仅运行特定测试用例的,完全符合你的需求MIMode:之前的gd...是没写完,补全为gdb(如果你用GDB调试)或者lldb(用LLDB的话)就行miDebuggerPath:推荐指定调试器的完整路径,避免VS Code找不到调试工具,根据你的系统(Linux/Windows/macOS)替换成对应的路径externalConsole:设为true会弹出独立终端显示测试输出,方便查看结果;如果想在VS Code集成终端里看,改成false即可
开始调试
配置完成后,在调试面板的下拉菜单里选择「Test_int」,点击绿色的启动按钮就可以开始调试了:
- 直接在你的测试代码或者业务源码的行号左侧点击,就能打上断点
- 调试过程中可以用步进、继续、查看变量等常规调试功能,和普通C++程序调试完全一致
额外小技巧
- 如果要运行多个测试用例,修改
args里的--gtest_filter即可,比如Feature1.*会运行Feature1下的所有测试,*test_int*会匹配所有包含test_int的测试 - 要是你的项目用CMake构建,也可以搭配CMake Tools扩展,能更便捷地编译和关联调试,但你已经有了现成的可执行文件,上面的配置就足够用了
内容的提问来源于stack exchange,提问作者Rodrigo Boos
相关产品推荐
相关产品推荐

