В настоящее время я использую ctest
для запуска тестов, написанных на платформе Catch. Я хотел бы иметь возможность фильтровать, какие тесты я запускаю, основываясь на внутренних тегах Catch; например, я хотел бы легко предотвратить запуск любых тестов с тегом [FUTURE]
.
Для одного исполняемого файла теста, игнорирующего ctest
, это просто:
myTestName '~[FUTURE]'
Но я не вижу способа передать аргумент '~[FUTURE]'
в тесты Catch через ctest
. Это должно быть возможно --test-command
, но (1) --test-command
, похоже, ничего не делает без --build-and-test
(это не то, что я хочу) и (2) это, видимо, только работает в любом случае, для одного теста за раз, что тоже не то, что я хочу (я просто хочу запустить ctest
для всего моего проекта).
Я мог бы просто использовать ctest -N
чтобы получить имена тестов для запуска, а затем запустить тесты самостоятельно, но я не знаю ни одного способа получить тестовый путь к файлу из ctest
поэтому мне пришлось бы запускать find
на всех test-names, и в этот момент я в основном реализую свой собственный тестовый прогон.
PS Нет никаких существующих тегов для ctest
или инфраструктуры тестирования Catch, и у меня нет представителя для их создания. Я не совсем уверен, какие другие теги будут применяться здесь. Я использую только тег cmake
потому что ctest
является частью cmake
.