Ho un progetto con la seguente struttura:Nessun test trovato quando si utilizza GTEST con CMake/CTest
linalg
├── build
├── CMakeLists.txt
├── docs
│ └── Doxyfile
├── include
│ └── linalg
│ └── vector3.hpp
├── src
│ ├── CMakeLists.txt
│ └── linalg
│ └── vector3.cpp
└── test
├── CMakeLists.txt
└── linalg
└── test_vector3.cpp
Il file test_vector3.cpp è un file di test di unità GTEST che fornisce due semplici test. Il livello superiore CMakeLists.txt imposta semplicemente la include e aggiunge lo src e prova sottodirectory:
cmake_minimum_required(VERSION 2.8)
project(linalg)
include_directories(include)
add_subdirectory(src)
add_subdirectory(test)
Il file/CMakeLists.txt src compila vector3.cpp in una libreria statica:
cmake_minimum_required(VERSION 2.8)
add_library(linalg linalg/vector3.cpp)
Il file/CMakeLists.txt test si basa sull'esempio fornito nel /usr/share/cmake-2.8/Modules/FindGTest.cmake:
cmake_minimum_required(VERSION 2.8)
enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(test_vector3 linalg/test_vector3.cpp)
target_link_libraries(test_vector3 linalg ${GTEST_BOTH_LIBRARIES} pthread)
add_test(test_vector3 test_vector3)
ho quindi eseguire il seguente:
01.235.Ottengo la libreria liblinalg.a compilata correttamente per creare/src e ottengo l'eseguibile test_vector3 compilato correttamente in build/test. Posso eseguire il file eseguibile test_vector3 e ottengo l'uscita dal googletest dire che tutti i test sono passati, se corro make test
ottengo nessuna uscita di alcun tipo e se corro ctest ..
ricevo un messaggio che dice:
Test project /home/ryan/GitHub/linalg/build
No tests were found!!!
C'è qualcosa che mi manca? O ho appena frainteso come funziona meglio con gtest?