Ich habe ein Projekt mit folgenden Struktur:Keine gefundene Tests bei Gtest mit cmake mit/ctest
linalg
├── build
├── CMakeLists.txt
├── docs
│ └── Doxyfile
├── include
│ └── linalg
│ └── vector3.hpp
├── src
│ ├── CMakeLists.txt
│ └── linalg
│ └── vector3.cpp
└── test
├── CMakeLists.txt
└── linalg
└── test_vector3.cpp
Die Datei test_vector3.cpp ist eine Gtest Unit-Test-Datei, die zwei einfache Tests zur Verfügung stellt. Die oberste Ebene CMakeLists.txt einfach einrichtet die enthält und fügt die src und Testverzeichnisse:
cmake_minimum_required(VERSION 2.8)
project(linalg)
include_directories(include)
add_subdirectory(src)
add_subdirectory(test)
Die src/CMakeLists.txt Datei vector3.cpp in eine statische Bibliothek kompiliert:
cmake_minimum_required(VERSION 2.8)
add_library(linalg linalg/vector3.cpp)
Die Test/CMakeLists.txt Datei auf dem Beispiel in /usr/share/cmake-2.8/Modules/FindGTest.cmake vorgesehen basiert:
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)
ich folgendes dann laufen:
cd build
cmake ..
make
Ich bekomme die liblinalg.a-Bibliothek korrekt kompiliert in Build/src und ich bekomme die test_vector3 ausführbare Datei in Build/Test korrekt kompiliert. Ich kann die test_vector3 ausführbare Datei ausführen, und ich bekomme die Ausgabe von googletest sagen, dass alle Tests bestanden haben, aber wenn ich laufen make test
ich keine Ausgabe überhaupt erhalten und wenn ich ctest ..
laufen bekomme ich eine SMS-Nachricht::
Test project /home/ryan/GitHub/linalg/build
No tests were found!!!
Gibt es etwas, das ich vermisse? Oder habe ich gerade missverstanden, wie ctest mit gtest funktioniert?