用cmake分离googletest测试用例

时间:2016-02-10 18:08:53

标签: c++ unit-testing cmake googletest

我在使用使用Google测试进行测试的CMake构建的项目上工作。我的测试的CMakeLists.txt文件如下所示:

add_executable(run_tests
    testcase_a.cpp
    dependency_a.cpp
    testcase_b.cpp
    dependency_b.cpp
)
target_link_libraries(run_tests gtest gtest_main)

随着测试用例数量的增加,这会变得相当混乱。我想分别编译每个测试用例,然后使用单个二进制文件运行它们。可以使用CMake和gtest_main完成吗?或者有没有更好的方法来做到这一点,我错过了?

1 个答案:

答案 0 :(得分:0)

这是基本想法: -

add_library(testcase_a.o OBJECT testcase_a.cpp dependency_a.cpp)
add_library(testcase_b.o OBJECT testcase_b.cpp dependency_b.cpp)   
add_executable(run_tests $<TARGET_OBJECTS:testcase_a.o> $<TARGET_OBJECTS:testcase_b.o>)
target_link_libraries(run_tests gtest gtest_main)

请参阅Object Libraries