Cmake CTest:如果;“预检查”;测试失败?

Cmake CTest:如果;“预检查”;测试失败?,cmake,ctest,Cmake,Ctest,我正在向我的项目中添加测试,所有测试都有一些先决条件,因此我添加了一个所有其他测试都依赖的预检查测试。如果预检查失败,我希望其他测试立即停止 add_test( NAME precheck COMMAND false ) add_test( NAME test-1 COMMAND true ) add_test( NAME test-2 COMMAND true ) set_tests_properties( test-1 test-2

我正在向我的项目中添加测试,所有测试都有一些先决条件,因此我添加了一个所有其他测试都依赖的预检查测试。如果预检查失败,我希望其他测试立即停止

add_test(
    NAME precheck
    COMMAND false
)

add_test(
    NAME test-1
    COMMAND true
)
add_test(
    NAME test-2
    COMMAND true
)
set_tests_properties(
    test-1 test-2
    PROPERTIES
    DEPENDS precheck
)
但似乎
dependens
属性只影响测试顺序:

$ make test
Running tests...
Test project /root/ibvq/frkcrpg/b
    Start 1: precheck
1/3 Test #1: precheck .........................***Failed    0.00 sec
    Start 2: test-1
2/3 Test #2: test-1 ...........................   Passed    0.00 sec
    Start 3: test-2
3/3 Test #3: test-2 ...........................   Passed    0.00 sec

67% tests passed, 1 tests failed out of 3

Total Test time (real) =   0.02 sec

The following tests FAILED:
          1 - precheck (Failed)
Errors while running CTest
Makefile:83: recipe for target 'test' failed
make: *** [test] Error 8

因此,如何使失败的预检查停止其他测试?

如果您使用的是CMake 3.7版或更高版本,则可以使用相关属性

对于CMake的早期版本,让您的
precheck
测试在成功时创建一个虚拟文件,其他测试通过设置属性来依赖该文件