用cmake分离googletest测试用例

separating googletest test cases with cmake

我正在开发一个使用 CMake 构建的项目,该项目使用 Google test 进行测试。我测试的 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 完成吗?还是有我缺少的更好的方法?

基本思路如下:-

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