2014-06-30 77 views

回答

8

你接近 - 測試屬性名爲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_property(TEST FirstTest PROPERTY 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 ${Labels}) # No quotes needed 

這個命令的輕微缺點是,你只能申請每次調用一個屬性。