【问题标题】:CTest - Using Labels for different tests CTestTestfile.cmakeCTest - 使用标签进行不同的测试 CTestTestfile.cmake
【发布时间】:2014-06-30 17:11:28
【问题描述】:

我找不到如何指定标签。它应该类似于

ADD_TEST( FirstTest RunSomeProgram "withArguments" )
SET_TESTS_PROPERTIES( FirstTest PROPERTIES LABEL "TESTLABEL" )

谁能告诉我如何设置这些标签之一,我可以使用

ctest -S someScript -L TESTLABEL

【问题讨论】:

    标签: cmake ctest


    【解决方案1】:

    您已接近 - 测试属性名为 LABELS,而不是 LABEL

    有几种设置标签的方法;您选择的那个(使用set_tests_properties)有一个小问题。签名是:

    set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)
    

    这意味着每个属性只能应用一个值。因此,如果您想以这种方式将多个标签应用于测试,则需要通过将标签列表作为包含分号分隔列表的单个字符串传递来“欺骗”CMake:

    set_tests_properties(FirstTest PROPERTIES LABELS "TESTLABEL;UnitTest;FooModule")
    

    set(Labels TESTLABEL UnitTest FooModule)
    set_tests_properties(FirstTest PROPERTIES LABELS "${Labels}")  # Quotes essential
    


    另一方面,您可以使用更通用的set_property 命令传递适当的标签列表:

    set_property(TEST FirstTest PROPERTY LABELS TESTLABEL UnitTest FooModule)
    

    set_property(TEST FirstTest PROPERTY LABELS ${Labels})  # No quotes needed
    

    此命令的轻微缺点是每次调用只能应用一个属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多