qt cmake ctest qttest

Construye pruebas Qt con CMake



ctest qttest (2)

¿Puede alguien darme un ejemplo de un código de prueba QT y un CMakeLists.txt que se compile con Cmake y se ejecute con CTest? ¡Parece que no puedo encontrar ninguna!

-Kurtis


Aquí hay un ejemplo del uso de cmake 2.8.11 y Qt5.2. Tenga en cuenta que cmake ahora admite archivos de prueba con un .moc-include en la parte inferior.

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"


Un ejemplo tomado de Charm (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 )

La única diferencia con un ejecutable normal es que se llama macro ADD_TEST. Echa un vistazo a, por ejemplo, Charm para verlo en acción.