ctest - запустить тесты с двумя метками - PullRequest
0 голосов
/ 18 октября 2019

чтобы предположить, что у меня есть какой-то проект, который состоит из N доменов (D1, D2, ..., DN). В каждом домене есть тесты двух видов: скажем, UT и MT. Они определены так:

add_test(
  NAME Di_UT
  COMMAND <blah>
)

add_test(
  NAME Di_MT
  COMMAND <blah>
)

И я бы хотел иметь возможность фильтровать их по меткам. Поэтому я добавляю метки:

set_tests_properties(Di_UT PROPERTIES LABELS "UT;Di")
set_tests_properties(Di_MT PROPERTIES LABELS "MT;Di")

Затем я выполняю ctest:

ctest -L Di

выполнит все тесты для домена Di и, конечно, наоборот:

ctest -L UT

Выполнит все тесты с меткой UT.

Но как отфильтровать по обеим меткам? выполнить только UT для домена Di?

Из того, что я наблюдаю, пропуск нескольких -L заставляет их перезаписывать. (последний имеет эффект). Есть еще идеи? моя версия cmake

ctest version 3.13.4

1 Ответ

0 голосов
/ 21 октября 2019

Кажется, что такая вещь просто не поддерживается. В качестве обходного пути я просто добавляю третий ярлык, содержащий другие два, - и затем вставляю его в ctest. Итак:

add_test(
  NAME Di_UT
  COMMAND <blah>
)

set_tests_properties(Di_UT PROPERTIES LABELS "UT;Di;UT-Di")

add_test(
  NAME Di_MT
  COMMAND <blah>
)
set_tests_properties(Di_MT PROPERTIES LABELS "MT;Di;MT-Di")

Итак, я могу выполнить так:

выполнить все UT:

ctest -L UT

выполнить все тесты для домена Di:

ctest -L Di

выполнить только UT для Di:

ctest -L Ut-Di

Кажется, это только доступная опция.

...