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 的灵活性允许你设置各种测试属性和标签,以便更好地组织和运行测试。

posted @ 2024-07-24 10:16  绍荣  阅读(10)  评论(0编辑  收藏  举报