1 前言
CMake可以使用CTest统一调用写好的单元测试程序,这样我们就不必拘泥于特定的一款单元测试工具。
下面以doctest为例进行说明。
2 步骤
假设目录结构为:
- ut
- aaa
- testa.cpp
- CMakeLists.txt
 
- bbb
- testb.cpp
- CMakeLists.txt
 
- CMakeLists.txt
 
- aaa
- CMakeLists.txt
2.1 设置根目录CMakeLists.txt
在根目录的CMakeLists.txt文件中,我们需要添加
enable_testing()
add_subdirectory(ut)接下来我们需要在单元测试代码一级的CMakeLists.txt中(如ut/aaa/CMakeLists.txt)添加:
add_executable(ut_aaa testa.cpp)
add_test(aaa ut_aaa ut_aaa)cd ${Project_Root_Path}
mkdir build
cd build
cmake ..
make -j
make test # 它会调用ctest命令,会自动执行所有add_test中注册的程序