windows 下使用CMake 配置 googletest测试库

发布时间 2023-04-08 15:18:32作者: 金凯旋

这个项目实际包含的知识细节,可以在微软的网站找到支持:

1 . 安装googletest.

下载,解压, googletest 

进入开发者模式 cmd 界面: Developer Command Prompt for VS 2022

 

编译,安装googletest

# 在解压后的目录下
mkdir build
cd build
# 准备安装在d:/googletest cmake -S .. -B . -G "NMake Makefiles" -DCMAKE_INSTALL_PREFIX=d:/googletest
nmake nmake install

注意:这里由于是采用vs2022的 32位编译器,编译好的结果也是debug版本的。

将d:/googletest/lib 加入到系统环境变量中,以后测试需要googletest的lib 库可以直接查找到

如果没有编译和安装,也可以使用google的源文件和头文件来使用googletest. 具体方法可以参见QT的缺省设置测试模板。

2. 配置:CmakePresets.json

在其中增加cacheVariables:

"GTEST_ROOT": "D:/googletest",
"GTEST_LIBRARY": "D:/googletest/lib/gtestd.lib",
"GTEST_MAIN_LIBRARY": "D:/googletest/lib/gtest_maind.lib",

3. 在项目的CMakeLists.txt 中增加

find_package(GTest REQUIRED)
add_executable (CMakeProject1 "CMakeProject1.cpp" "CMakeProject1.h")
target_compile_options(
CMakeProject1 PUBLIC
$<$<CONFIG:>:/MT> #---------|
$<$<CONFIG:Debug>:/MTd> #---|-- Statically link the runtime libraries
$<$<CONFIG:Release>:/MT> #--|
)
target_link_libraries(CMakeProject1 PRIVATE GTest::gtest GTest::gtest_main)

 

这时候,googletest 的基本配置完成。

#include <gtest/gtest.h>

int main(int argc, char* argv[])
{
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}