CTest - 使用标签进行不同的测试CTestTestfile.cmake

时间:2014-06-30 17:11:28

标签: cmake ctest

我找不到如何指定标签。它应该像

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

有人可以告诉我如何设置其中一个标签,我可以使用

进行访问
ctest -S someScript -L TESTLABEL

1 个答案:

答案 0 :(得分:13)

您已关闭 - 测试属性的名称为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

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