如何在CMakeLists.txt中覆盖Ctest默认超时1500

时间:2017-07-10 10:23:31

标签: cmake timeout ctest

我的CMakeLists.txt包含

include(CTest)
enable_testing()
set(CTEST_TEST_TIMEOUT 3)
add_test(...)

ctest有效,但忽略了我设置超时的尝试。相反,它以默认超时1500运行。

如何更改默认超时?如何使用CTEST_TEST_TIMEOUT

1 个答案:

答案 0 :(得分:11)

CTEST_TEST_TIMEOUT用于CTest脚本,而不是CMakeLists.txt文件。您可以使用TIMEOUT测试属性控制CMake中的超时,但是没有设置全局超时默认值的CMake变量。以下将仅sometest测试的超时设置为30秒:

add_test(sometest ...)
set_tests_properties(sometest PROPERTIES TIMEOUT 30) 

可以在使用ctest选项调用--timeout时覆盖默认超时。例如。在全局超时默认设置为120秒的情况下运行测试:

ctest --timeout 120

即使使用--timeout选项,CMake中针对单个测试指定的超时仍优先于全局设置的默认超时。