Одна строка, которую вы могли бы добавить в конце, была бы:
gtest_discover_tests(test)
Это замена для gtest_add_tests
, а затем после того, как вы все построите, вы можете просто запустить ctest
, и это даст вам хорошее резюме тестов, которые он только что провел. Вы можете прочитать больше об этой опции здесь .
Также, как примечание, вероятно, было бы лучше сделать отдельные тестовые файлы для каждого из ваших тестов, а не включать . cpp файлов в вашем основном тестовом файле.
Обычно я определяю опцию, разрешающую тестирование, и функцию, которая создает нужный мне тест (см. Ниже):
option(build_all_tests "Build all unit tests in the test directory." OFF)
if (build_all_tests)
include(CTest)
include(GoogleTest)
enable_testing()
## Function to create a new test based off the pre-defined naming template ##
function(new_test testname interiorDirectory)
add_executable(${testname} ${interiorDirectory}/${testname}.cpp)
target_link_libraries(${testname} ${GTEST_LIBRARIES})
gtest_discover_tests(${testname}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${interiorDirectory})
endfunction(new_test)
## Locate GTest ##
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
## Create all tests ##
new_test(test1 test/test1)
new_test(test2 test/test2)
...
endif()