gtest使用初探
简介: 本文在 ubuntu18.04 上实现了 googletest 的全局安装,并在一个 demo项目中演示了使用 cmake 引入了该库,实现了在命令行中运行 c++ 单元测试,包括运行单个 TEST 函数。另外通过 vscode 的插件 C++ TestMate, 实现了像 golang 那样的通过点击按钮即可运行单个测试,极大地方便了开发。
一、在命令行中使用googletest
a. 安装
补充文档 gtest详细安装教程
- 下载安装包,此命令只会下载源码到 /usr/src sudo apt-get install libgtest-dev
- 编译并拷贝
# 先去到 /usr/src/gtest
$sudo cmake && sudo make
# 头文件会自动安装(/usr/include/gtest),但是库文件需要手动拷贝到系统搜索路径下
$sudo cp libgtest* /usr/lib/
b. 在项目中通过cmake引用
- 通过cmake 自带的 find_package 包管理命令来引入,以下 cmake文件是一部分,本质上生成 unit test的执行函数和普通的 c++ 可执行文件没有大的区别
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(runTests test/main_test.cpp)
target_link_libraries(runTests ${GTEST_BOTH_LIBRARIES} pthread)
install(TARGETS runTests)
find_package 会通过 /usr/share/cmake-3.25/Modules/FindGTest.cmake 这个文件来查找整个 GTest的库位置。 补充文档,关于 find_package 详细原理
c. 运行
执行完 cmake 和 make install 之后,去到 runTests 文件的安装路径
runTests --gtest_list_tests
列出所有的testsrunTests --gtest_filter=pico.test1
可以单独跑某个 test 补充文档, googletest 详细教程
二、配合 vscode 插件一键运行UT
a. 安装和配置插件
在vscode 的插件搜索栏中搜索 googletest, 选择C++ TestMate 安装
配置,在 .vscode/setting中增加编译出来的可执行 test 文件的目录
补充文档 插件具体配置
# 配置成ut执行文件的路径,支持正则匹配
"testMate.cpp.test.advancedExecutables": [{"pattern":"${workspaceFolder}/cxx-lab/install/bin/*Tests"}],
避坑:在我的电脑上,普通的配置(test.executables + test.workingDirectory的模式)没有作用,只有 test.advancedExecutables 有作用,原因未知。
效果图
该插件,不仅可以运行 ut, 还可以进行 debug 操作,可以说是非常方便了
版权归原作者 杨澄 所有, 如有侵权,请联系我们删除。