CMake使用知识点之三——测试 用例
知识点积累
1 内部宏
- ${PROJ_SOURCE_DIR}:
2 单元测试
代码
cmake_minimum_required(VERSION 3.10)
project(ExampleProject)
# 启用测试
enable_testing()
# 添加可执行文件 main(如果有主程序的话)
add_executable(main main.cpp)
# 添加测试可执行文件 test1 和 test2
add_executable(test1 test1.cpp)
add_executable(test2 test2.cpp)
# 添加测试用例
add_test(NAME Test1 COMMAND test1)
add_test(NAME Test2 COMMAND test2)
# 如果有更多测试用例,可以继续添加
# add_executable(test3 test3.cpp)
# add_test(NAME Test3 COMMAND test3)
#include <iostream>
int main() {
std::cout << "Main Program" << std::endl;
return 0;
}
#include <iostream>
int main() {
std::cout << "Running Test 1" << std::endl;
return 0; // 返回 0 表示测试通过
}
#include <iostream>
int main() {
std::cout << "Running Test 2" << std::endl;
return 0; // 返回 0 表示测试通过
}
ctest
Test project /path/to/build
Start 1: Test1
1/2 Test #1: Test1 .................. Passed 0.00 sec
Start 2: Test2
2/2 Test #2: Test2 .................. Passed 0.00 sec
100% tests passed, 0 tests failed out of 2
set_tests_properties(Test1 PROPERTIES TIMEOUT 10)
set_tests_properties(Test2 PROPERTIES DEPENDS Test1)
set_tests_properties(Test1 PROPERTIES LABELS "unit")
set_tests_properties(Test2 PROPERTIES LABELS "integration")
ctest -L unit
总结
通过在 CMakeLists.txt 文件中添加多个 add_test 命令,你可以轻松地管理和运行多个测试用例。CTest 的灵活性允许你设置各种测试属性和标签,以便更好地组织和运行测试。