代码之家  ›  专栏  ›  技术社区  ›  pynexj

CTEST:如果“预检查”测试失败,如何跳过其他测试?

  •  1
  • pynexj  · 技术社区  · 7 年前

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

    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
    )
    

    但似乎 DEPENDS 属性只影响测试顺序:

    $ 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
    

    那么我如何才能让失败 预检查 停止其他测试?

    1 回复  |  直到 7 年前
        1
  •  3
  •   sakra    7 年前

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

    对于早期版本的cmake,请 precheck 通过设置 REQUIRED_FILES 属性。

    推荐文章