You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode调试CMake目标下单个leveldb测试,跳过其余测试方法

仅调试LevelDB单个测试文件的方法

LevelDB使用Google Test(GTest)框架管理测试,要单独调试filter_block_test.cc里的测试,有几种简单可行的方法:

方法1:修改VSCode调试配置,指定测试过滤规则

  • 打开VSCode的.vscode/launch.json(没有的话通过调试面板生成)
  • 在对应调试配置的args字段中,添加GTest的过滤参数,精准匹配FilterBlockTest类下的所有测试:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug FilterBlockTest",
      "type": "cppvsdbg", // 根据你的编译器选择,比如clang用lldb
      "request": "launch",
      "program": "${command:cmake.launchTargetPath}",
      "args": ["--gtest_filter=FilterBlockTest*"],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false
    }
  ]
}
  • 启动这个调试配置后,只会运行FilterBlockTest相关的测试,直接进入你要调试的代码段。

方法2:命令行指定过滤参数后调试

  • 先编译leveldbtests目标:cmake --build . --target leveldbtests
  • 直接运行带过滤参数的测试:./leveldbtests --gtest_filter=FilterBlockTest*
  • 要调试的话,要么在VSCode里选择「附加到进程」找到leveldbtests进程,要么直接在launch.json里把program路径指向编译好的leveldbtests,加上上述args参数。

方法3:单独创建测试目标(可选)

  • 找到CMakeLists.txt中把filter_block_test.cc加入leveldbtests的位置(第328行附近),单独为这个文件生成测试目标:
add_executable(filter_block_test table/filter_block_test.cc)
target_link_libraries(filter_block_test leveldb gtest gtest_main)
  • 重新生成CMake项目后,会出现单独的filter_block_test目标,直接调试这个目标即可,完全不用管其他测试。

内容的提问来源于stack exchange,提问作者dashenswen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:02:45