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 mit

    TEMPLATE = 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





  • 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.


Anmelden zum Antworten