我有以下结构的项目:使用GTEST通过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
文件test_vector3.cpp是GTEST单元测试文件,其提供两个简单的测试。顶级的CMakeLists.txt简单地设置包括并添加src和测试子目录:
cmake_minimum_required(VERSION 2.8)
project(linalg)
include_directories(include)
add_subdirectory(src)
add_subdirectory(test)
在src /的CMakeLists.txt文件编译成vector3.cpp静态库:
cmake_minimum_required(VERSION 2.8)
add_library(linalg linalg/vector3.cpp)
的测试/的CMakeLists.txt文件基于在/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)
我然后运行以下:
cd build
cmake ..
make
我得到正确编译的liblinalg.a库来编译/ src,并且我正确地编译了test_vector3可执行文件以编译/测试。我可以运行test_vector3可执行文件和我得到的输出googletest说,所有的测试都通过了,但是如果我跑make test
我没有得到任何输出任何,如果我跑ctest ..
我得到一个消息说:
Test project /home/ryan/GitHub/linalg/build
No tests were found!!!
有我错过了什么?还是我误解了ctest如何与gtest协同工作?