Модульное тестирование (не Qt) C ++ кода в Qt Creator?

У меня есть проект C ++, который не использует Qt. Я использую Qt Creator в качестве своей IDE, потому что это очень удобно.

Я читал о модульном тестировании в Qt Creator Вот, и я думаю, что Qt Test кажется довольно хорошим. Есть ли способ использовать Qt Test с моим не-Qt C ++ проектом?

Обратите внимание, что на моем компьютере установлены библиотеки Qt, которые я использую для программирования. Но я не хочу, чтобы скомпилированная программа, которую я выпускаю, зависела от библиотек Qt.

Кроме того, функция, которая мне понравилась при использовании Visual Studio, заключается в том, что тесты запускаются автоматически каждый раз, когда я строю свой проект. Могу ли я сделать то же самое с Qt Creator?

Кстати, если вы можете предложить другую инфраструктуру для модульного тестирования, которую я могу легко использовать в Qt Creator, это тоже хорошо.

5

Решение

Вы также можете тестировать (не Qt) код C ++ в Qt Creator с помощью GTest:

https://github.com/google/googletest/

используя этот замечательный плагин QtCreator:

https://github.com/OneMoreGres/qtc-gtest

Я переключился с QTest на GTest (для тестирования приложений Qt) по нескольким причинам, например: Хороший графический вывод и возможность использовать фальшивый фреймворк (GMock).

2

Другие решения

На самом деле никогда не пытался выполнить модульное тестирование не qt-кода в QtCreator, но природа кода Qt не имеет значения. Вот как бы я пошел:

  1. Возьми свой обычный, не QT проект
  2. Добавить родительский проект типа подкаталог действовать как визуальное решение студии.
  3. Добавьте другой проект под родительским, который является тестовым проектом qt, т.е.

    QT  += testlib
    CONFIG += qtestlib
    
  4. Найдите способ поделиться источниками между обоими. Вы можете добавить исходные файлы, используя их относительный путь, создать статическую библиотеку или использовать 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
1

Вы можете попробовать тестовый фреймворк Boost

http://www.boost.org/doc/libs/1_55_0/libs/test/doc/html/index.html

0
По вопросам рекламы [email protected]