无法使用include(ctest)构建测试单元?

时间:2013-04-01 03:19:25

标签: c++ cmake

我的项目结构是https://github.com/yumyai/cmake-sample。它类似于此线程CMake: Project structure with unit tests中的项目。

每当我将include(CTest)添加到顶级CMakeLists.txt中时,我都无法构建测试文件(make test不会构建任何内容)。但如果我评论include(CTest),我可以使用make test构建单元测试执行程序就好了。

这是正常行为还是我忘记了什么?

1 个答案:

答案 0 :(得分:1)

您的样本看起来很好 - 它可以使用或不使用include(CTest)行。

更改CMakeLists.txt后可能没有重新编译,因此看起来make test无效?

如果省略include(CTest)行并执行make test,则ctest -N应输出如下内容:

 Test project <path to build>

 Total Tests: 0

如果您添加include(CTest)行并执行make test,则ctest -N应输出如下内容:

 Test project <path to build>
 Test #1: SqrTest

 Total Tests: 1

这应该是唯一的区别 - 测试是否在CTest注册。在每种情况下,如果make test之前已成功运行,则make test唯一的效果就是重新运行CMake。如果运行之间CMakeLists.txt中的更改不影响实际测试目标,则不会重建它。