3

В настоящее время я использую 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 .

0