首先通过FetchContent引入Google Test,再编写测试用例并创建测试可执行文件,接着用enable_testing()和add_test()注册测试,最后通过ctest运行测试。完整流程包括:1. 在CMakeLists.txt中使用FetchContent下载gtest;2. 编写被测函数及gtest测试代码;3. 配置target_link_libraries链接gtest_main和pthread;4. 调用enable_testing()并注册测试目标;5. 构建后运行ctest执行测试。关键点为正确链接库和启用测试功能。

在C++项目中使用CMake集成单元测试,是提升代码质量的关键步骤。主流做法是借助Google Test(gtest)框架,并通过CMake的CTest系统管理测试用例。下面介绍如何配置。
1. 安装并引入Google Test
Google Test是C++中最常用的单元测试框架。推荐通过CMake的FetchContent自动下载并编译,避免手动安装依赖。
在CMakeLists.txt中添加:
include(FetchContent)FetchContent_Declare(googletestURL https://www.php.cn/link/cb57ba36db3faf9723fcfeade897b7fb)
set(BUILD_TESTING OFF CACHE INTERNAL "禁用gtest自带的示例")FetchContent_MakeAvailable(googletest)
2. 编写测试代码
假设你的项目有一个函数需要测试:
立即学习“C++免费学习笔记(深入)”;
// math_utils.h#pragma onceint add(int a, int b);// math_utils.cpp
include "math_utils.h"
int add(int a, int b) { return a + b; }
编写对应的测试文件:
// tests/test_math.cpp#include #include "math_utils.h"TEST(MathTest, AddFunction) {EXPECT_EQ(add(2, 3), 5);EXPECT_EQ(add(-1, 1), 0);}
3. 配置CMake构建测试可执行文件
在项目根目录或tests/子目录下的CMakeLists.txt中添加测试目标:
enable_testing()add_executable(test_runner tests/test_math.cpp)target_link_libraries(test_runner gtest_main gtest pthread)
注册到CTest
add_test(NAME MathTest_AddFunctionCOMMAND test_runner)
enable_testing()启用测试支持,add_test()将可执行文件注册为一个测试项。
4. 运行测试
构建项目后,使用ctest命令运行测试:
mkdir build && cd buildcmake ..makectest
输出会显示测试是否通过。加上-V参数可查看详细日志:
ctest -V
也可以直接运行测试程序调试:
./test_runner
基本上就这些。只要把gtest集成好,写好测试用例,再让CMake生成并注册测试目标,就能实现自动化测试流程。不复杂但容易忽略细节,比如忘记enable_testing()或链接pthread库。确保每一步都配对,测试就能顺利跑起来。
以上就是c++++怎么在CMake中添加单元测试_c++构建系统与测试集成方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1483093.html
微信扫一扫
支付宝扫一扫