У меня есть проект C ++, который не использует Qt. Я использую Qt Creator в качестве своей IDE, потому что это очень удобно.
Я читал о модульном тестировании в Qt Creator Вот, и я думаю, что Qt Test кажется довольно хорошим. Есть ли способ использовать Qt Test с моим не-Qt C ++ проектом?
Обратите внимание, что на моем компьютере установлены библиотеки Qt, которые я использую для программирования. Но я не хочу, чтобы скомпилированная программа, которую я выпускаю, зависела от библиотек Qt.
Кроме того, функция, которая мне понравилась при использовании Visual Studio, заключается в том, что тесты запускаются автоматически каждый раз, когда я строю свой проект. Могу ли я сделать то же самое с Qt Creator?
Кстати, если вы можете предложить другую инфраструктуру для модульного тестирования, которую я могу легко использовать в Qt Creator, это тоже хорошо.
Вы также можете тестировать (не Qt) код C ++ в Qt Creator с помощью GTest:
https://github.com/google/googletest/
используя этот замечательный плагин QtCreator:
https://github.com/OneMoreGres/qtc-gtest
Я переключился с QTest на GTest (для тестирования приложений Qt) по нескольким причинам, например: Хороший графический вывод и возможность использовать фальшивый фреймворк (GMock).
На самом деле никогда не пытался выполнить модульное тестирование не qt-кода в QtCreator, но природа кода Qt не имеет значения. Вот как бы я пошел:
Добавьте другой проект под родительским, который является тестовым проектом qt, т.е.
QT += testlib
CONFIG += qtestlib
Найдите способ поделиться источниками между обоими. Вы можете добавить исходные файлы, используя их относительный путь, создать статическую библиотеку или использовать pri
файл (файл заголовка проекта) для проектов, не относящихся к qt и qttestlib.
В этой конфигурации, создавая проект верхнего уровня, вы создадите свой обычный проект и также запустите тест.
с subdir
шаблоны проектов, которые вы получаете от Ctrl+N не очень полезны Но файл проекта верхнего уровня можно сделать так же просто, как
include (commonsrc.pri)
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += appdir
SUBDIRS += testingdir
Так выглядит верхний уровень одного из моих проектов.
Чтобы избежать головной боли, сопоставьте иерархию папок с иерархией подкаталогов. Например
solutiondir
commondir
appdir
testingdir
commonsrc.pri <--- allow you to write commondir\mycpp.cpp in any project
Вы можете попробовать тестовый фреймворк Boost
http://www.boost.org/doc/libs/1_55_0/libs/test/doc/html/index.html