enable_testing

为当前目录及其子目录启用测试

enable_testing()

此命令应在顶级源目录中调用,因为 ctest(1) 期望在顶级构建目录中找到一个测试文件。

CTest 模块被包含时,此命令也会自动调用,除非 BUILD_TESTING 选项被关闭。

以下限制适用于 enable_testing() 可以调用的位置

  • 它必须在文件作用域中调用,不能在 function() 调用中,也不能在 block() 内部。

示例

在以下示例中,此命令的调用是根据项目的使用方式有条件地进行的。例如,当通过 FetchContent 模块将 Example 项目作为父项目子目录添加,而父项目定义了自己的测试时,Example 项目的测试将被禁用。

CMakeLists.txt
project(Example)

option(Example_ENABLE_TESTING "Enable testing" ${PROJECT_IS_TOP_LEVEL})

if(Example_ENABLE_TESTING)
  enable_testing()
endif()

# ...

if(Example_ENABLE_TESTING)
  add_test(...)
endif()

另请参阅