Qt Creator => UnitTests einrichten
-
Hallo zusammen,
ich versuche gerade ein Projekt mit Unittests mit Qt Creator einzurichten.
Folgendes habe ich gemacht:
-Neues (Konsolen-)Projekt "TestTheTest" in einem Ordner "TestTheTestProject" angelegt
-Im Ordner eine "TestTheTestProject.pro" Datei angelegt mitTEMPLATE = subdirs SUBDIRS += TestTheTest
-Diese Projekt mit Qt Creator geöffnet
-Neues Teilprojekt "UnitTests" angelegt.
-In "TestTheTest" eine Klasse eingefügt (die getestet werden soll)Was muss ich jetzt noch machen, damit ich im Teilprojekt "UnitTests" auf diese Klasse zugreifen kann, um dafür Tests zu schreiben? Nur #include reicht offensichtlich nicht aus, weil im falschen Verzeichnis gesucht wird.
So sieht die "UnitTest.pro" aus:
#------------------------------------------------- # # Project created by QtCreator 2017-07-10T12:07:21 # #------------------------------------------------- QT += testlib QT -= gui TARGET = tst_unittesttestclass CONFIG += console CONFIG -= app_bundle TEMPLATE = app # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ tst_unittesttestclass.cpp DEFINES += SRCDIR=\\\"$$PWD/\\\"
Das oben beschriebene erscheint mir für eine moderne IDE ziemlich umständlich. Geht das auch einfacher? Oder bin ich völlig auf dem Holzweg?
Danke für die Unterstützung,
temi
-
Schau mal, ob dir Project Structure for Projects in Qt Creator with Unit Tests hilft.
-
Es hat geholfen. Ich denke ich bin auf dem Weg.
Meine zweite Frage konnte ich selbst beantworten: Es gibt unter "Neues Projekt" - "Anderes Projekt" auch die Vorlage "Subdirs-Projekt".
Die "test.pro" sieht jetzt so aus ("Foo" ist das Projekt, "Bar" die zu testende Klasse):
QT += testlib QT -= gui TARGET = test CONFIG += console CONFIG -= app_bundle TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS HEADERS += \ ../foo/bar.h \ SOURCES += \ test.cpp \ ../foo/bar.cpp \ INCLUDEPATH += ../foo \
Danke erst mal.