如何配置GTest适配Visual Studio Code图形化调试器(非子模块方式)
在VS Code里调试GTest测试(不用子模块方案)
先确认基础条件
- 本地已经装好GTest库:可以用系统包管理器安装,比如Linux下执行
apt install libgtest-dev,macOS用brew install googletest,或者自行编译后放到系统路径中 - 项目采用CMake构建(如果是Makefile或其他构建工具,思路类似,仅配置细节有差异)
1. 配置CMakeLists.txt
在项目的CMakeLists.txt中,将测试代码编译为可执行文件并链接GTest库:
# 替换为你的测试源码文件名,比如test_main.cpp add_executable(my_test_suite test_main.cpp) # 链接GTest库及自带的主函数入口 target_link_libraries(my_test_suite gtest gtest_main) # 开启Debug模式,确保编译产物包含调试信息 set(CMAKE_BUILD_TYPE Debug)
2. 编译测试可执行文件
打开VS Code终端,执行以下命令完成编译:
mkdir -p build && cd build cmake .. make
编译完成后,build目录下会生成my_test_suite(Windows系统为.exe后缀)可执行文件。
3. 配置VS Code调试启动文件
- 点击左侧调试虫子图标,选择「创建launch.json文件」,再选择"C++ (GDB/LLDB)"环境
- 将自动生成的launch.json内容替换为以下配置,注意修改
program路径为你的测试可执行文件绝对路径:
{ "version": "0.2.0", "configurations": [ { "name": "Debug GTest Cases", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/my_test_suite", "args": [], // 可添加GTest参数,比如--gtest_filter=MyTest.*仅调试特定测试用例 "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "让GDB显示更友好的变量格式", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "Build Test Suite" // 可选配置,添加后调试前会自动编译 } ] }
4. (可选)配置自动编译任务
若不想每次调试前手动编译,可配置tasks.json:
- 按Ctrl+Shift+B(Windows/Linux)或Cmd+Shift+B(macOS),选择「创建tasks.json文件」,再选「Others」
- 替换为以下内容:
{ "version": "2.0.0", "tasks": [ { "label": "Build Test Suite", "type": "shell", "command": "cd build && make", "args": [], "group": { "kind": "build", "isDefault": true }, "problemMatcher": "$gcc" } ] }
开始调试
- 在测试代码的可疑位置,点击行号左侧添加断点
- 点击调试面板的绿色播放按钮,启动调试
- 使用VS Code自带的调试控件(继续、单步跳过、单步进入等)逐步排查测试失败原因
内容的提问来源于stack exchange,提问作者gkv
相关产品推荐
相关产品推荐

