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

How to overwrite Ctest default timeout 1500 in CMakeLists.txt

我的CMakeLists.txt包括行

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

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

如何更改默认超时? CTEST_TEST_TIMEOUT 的用途是什么?

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

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

可以 ,但是,当您使用 --timeout 选项调用 ctest 时,可以覆盖默认超时。例如。 运行 全局超时默认设置为 120 秒的测试:

ctest --timeout 120

在 CMake 中为单个测试指定的超时仍然优先于全局设置的默认超时,即使使用 --timeout 选项也是如此。