如果在子目录中定义了测试,则CMake无法运行测试

时间:2019-03-06 13:15:04

标签: c++ cmake ctest

我的项目布局如下:

.
|_ CMakeLists.txt
|_ src
| |_ CMakeLists.txt
| |_ myLib
| |_ tests
|   |_ CMakeLists.txt
|   |_ add_test(myLibTest my_lib_test)

问题在于,如果我在src/CMakelists.txt中启用了这样的测试:

enable_testing()
add_subdirectory(tests)

CMake编译我的测试,但不会运行它们:

$ ctest
********************************* 
No test configuration file found!
********************************* 
Usage

  ctest [options]

这是为什么?

如果我这样更改布局:

.
|_ CMakeLists.txt
|_ src
| |_ CMakeLists.txt
| |_ myLib
|_ tests
| |_ CMakeLists.txt
| |_ add_test(myLibTest my_lib_test)

..并在./CMakeLists.txt中启用测试,然后可以运行测试,但是当然不能引用src/CMakeLists.txt中定义的变量。

0 个答案:

没有答案