Frage

Kann mir jemand ein Beispiel für einen QT -Testcode und einen CMakelists geben. Ich kann scheinbar keine finden!

-Kurtis

War es hilfreich?

Lösung

Ein Beispiel von genommen von Charme (Tests/cmakelists.txt):

SET( TestApplication_SRCS TestApplication.cpp )
SET( TEST_LIBRARIES CharmCore ${QT_QTTEST_LIBRARY} ${QT_LIBRARIES} )

SET( SqLiteStorageTests_SRCS SqLiteStorageTests.cpp )
QT4_AUTOMOC( ${SqLiteStorageTests_SRCS} )
ADD_EXECUTABLE( SqLiteStorageTests ${SqLiteStorageTests_SRCS} )
TARGET_LINK_LIBRARIES( SqLiteStorageTests ${TEST_LIBRARIES} )
ADD_TEST( NAME SqLiteStorageTests COMMAND SqLiteStorageTests )

Der einzige Unterschied zu einer normalen ausführbaren Datei besteht darin, dass Sie das Makro add_test aufrufen. Schauen Sie sich den Zauber an, um es in Aktion zu sehen.

Andere Tipps

Hier ist ein Beispiel für die Verwendung CMAKE 2.8.11 und Qt5.2. Beachten Sie, dass CMAKE jetzt Testdape mit einem .moc-include unten unterstützt.

Cmakelists.txt:

cmake_minimum_required(VERSION 2.8.11)
project(foo)

enable_testing()

# Tell CMake to run moc when necessary:
set(CMAKE_AUTOMOC ON)

# As moc files are generated in the binary dir, tell CMake
# to always look for includes there:
set(CMAKE_INCLUDE_CURRENT_DIR ON)

find_package(Qt5Test REQUIRED)

add_executable(foo foo.cpp)
add_test(foo foo)

target_link_libraries(foo Qt5::Test)

foo.cpp:

#include <QTest>

class Foo : public QObject {
    Q_OBJECT
private slots:
    void t1() { QVERIFY(true); }
};

QTEST_MAIN(Foo)
#include "foo.moc"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top