Почему, если в проекте есть main функция, не находятся тесты gtest?

Если я добавляю в исходники файл entry_point.cpp

int main(){
  return 0;
}

то при запуске тестов, они не находятся

cmake ..
cd .. 
cmake --build build
cd build/
ctest

Получаю сообщение, что тесты не найдены.

No tests were found!!!

Но, если убрать файл entry_point.cpp из сборки, то все будет работать.

Файл cmake

cmake_minimum_required(VERSION 3.14)
project(my_project)

# GoogleTest requires at least C++11
set(CMAKE_CXX_STANDARD 11)

include(FetchContent)
FetchContent_Declare(
  googletest
  URL https://github.com/google/googletest/archive/refs/heads/main.zip
)

# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)

enable_testing()

add_executable(
    hello_test 
    #src/MI.entry_point.cpp
    src/Base/MI.fast_mod_unittest.cpp
    src/Base/MI.fast_mod.h
)
target_link_libraries(hello_test gtest_main)
target_link_libraries(hello_test gmock_main)

include(GoogleTest)
gtest_discover_tests(hello_test)

Наверное, нужно создавать два проекта, один с тестами, другой с функцией main?


Ответы (0 шт):