#cmake #ctest
#cmake #ctest
Вопрос:
Я не могу найти, как указать метки. Это должно быть что-то вроде
ADD_TEST( FirstTest RunSomeProgram "withArguments" )
SET_TESTS_PROPERTIES( FirstTest PROPERTIES LABEL "TESTLABEL" )
Может кто-нибудь сказать мне, как я могу установить одну из этих меток, к которой я могу получить доступ с помощью
ctest -S someScript -L TESTLABEL
Ответ №1:
Вы близки — свойство test названо 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
Небольшим недостатком этой команды является то, что вы можете применить только одно свойство для каждого вызова.