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中注册的程序