Как выполнить все gtests для проекта cmake с помощью qtcreator?

(В ответ на этот вопрос )

Мой файл cmake выглядит так:

include(CTest)
add_subdirectory(/usr/src/gtest gtest)
include_directories(${GTEST_INCLUDE_DIR})

add_executable(TestA TestA.cpp)
target_link_libraries(TestA gtest)
add_test(NAME AllTestsInA COMMAND TestA)

add_executable(TestB TestB.cpp)
target_link_libraries(TestB gtest)
add_test(NAME AllTestsInB COMMAND TestB)

Я могу запускать отдельные тесты из qtcreator и все тесты из командной строки, используя ctest --output-on-failure, но как я могу выполнить все тесты из qtcreator?

версия qtcreator: 2.7.0


person mort    schedule 04.12.2013    source источник


Ответы (2)


У вас должна быть цель с именем просто test. Если вы создадите это, оно выполнит все тесты.

Для IDE без makefile (например, Visual Studio) эквивалентная цель называется RUN_TESTS.

person Fraser    schedule 04.12.2013
comment
Какую ОС и компилятор используете? - person Fraser; 04.12.2013
comment
Раринг Ubuntu, clang++ 3.3.3 - person mort; 04.12.2013
comment
да. НО: я запускаю cmake в build/, чтобы не путались исходники и бинарники. У меня есть GNUMakefile в корне проекта с целевым тестом, который в основном переходит в build/ и вызывает там ctest. Это также работает из командной строки, но может быть проблемой для QtCreator? - person mort; 04.12.2013
comment
Да - может быть. Недавно я использовал QtCreator на OSX (с Clang) и только что проверил, что цель test работает там, как ожидалось. Хранить исходники и двоичные файлы в разных каталогах — определенно хороший план. Я думаю, вы могли бы попробовать заменить корневой GNUMakefile сценарием оболочки? - person Fraser; 04.12.2013
comment
Я не уверен, что вы имеете в виду в своем последнем предложении ... что делает сценарий оболочки? Я могу выполнить все тесты, запустив make test в корне проекта, который, в свою очередь, перейдет в build/ для запуска оттуда ctest. Я просто хочу запустить его из QtCreator - person mort; 04.12.2013
comment
Я думал, что Makefile в корне вашего проекта был чем-то, что вы написали вручную или что предшествовало использованию вами CMake в этом проекте. Если в корне вашего проекта есть сгенерированный CMake файл Makefile (а не build/), то CMake был запущен из вашего корневого каталога. - person Fraser; 05.12.2013
comment
Я даже не получаю тестовую цель. Использование последнего создателя (3.5.1) в Linux и сборка из исходного кода. пришлось добавить конфигурацию в раздел запуска для вызова ctest. - person Slava; 04.12.2015

Используя QtCreator 2.4.1, попробуйте добавить пользовательский шаг сборки: Проекты -> «Шаги сборки» -> [Добавить шаг сборки]. [x] Включите этот шаг и используйте «ctest» в качестве команды.

person A.Larz    schedule 14.05.2016