Я использую CTest с CMake для запуска некоторых тестов. Я использую команду enable_testing()
, которая предоставляет мне команду по умолчанию для make test
. Все тесты в моем поддиректории учитываются (выполняя команду add_test
), а make test
отлично работает, кроме одной проблемы.Командная команда CMake и CTest по умолчанию пропускает специально названный тест
Существует определенный тест, который я назвал skip_test
, что я НЕ хочу запускать, когда я делаю make test
. Я хотел бы добавить пользовательскую цель, чтобы я мог запустить make skip_test
, и он будет запускать этот тест.
Я могу сделать это, выполнив add_custom_target(skip_test ...)
и предоставив CTest флагом -R
и сообщив ему искать файлы, содержащие «skip_test» в их имени. Это также работает. Моя проблема заключается в следующем: как я могу получить команду make test
игнорировать skip_test
?
Если я попытаюсь прокомментировать enable_testing
и добавлю свои собственные add_custom_target(test ....)
, я получаю «Никаких тестов не найдено !!!» теперь для make test
или make skip_test
. Я также попытался создать файл Custom CTest и добавить set(CTEST_CUSTOM_TESTS_IGNORE skip_test)
. Это работало так, что теперь make test
проигнорировал «skip_test», но теперь работает make skip_test
отвечает «никакие тесты не найдены !!!».
Любые предложения будут оценены!
Я нашел, что в Makefile, сгенерированном CMake, задан «make test». Он запускает ctest и имеет дополнительный флаг $ (ARGS) в конце. Я нашел «решение» для моей проблемы - вручную ввести «-E. * Skip_test», и он пропускает мой тест с именем «skip_test». Как я могу сказать, что CMake добавляет это в цель «make test», которая автоматически определяется? – user35959