Создайте QT -тесты с Cmake
Вопрос
Может ли кто -нибудь привести мне пример некоторого кода QT и Cmakelists.txt, которые строятся с Cmake и работали с CTEST. Кажется, я не могу найти!
-Куртис
Решение
Пример, взятый из Шарм (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 )
Единственная разница в обычном исполняемом файле заключается в том, что вы называете макрос ADD_TEST. Посмотрите, например, очарование, чтобы увидеть его в действии.
Другие советы
Вот пример использования Cmake 2.8.11 и QT5.2. Обратите внимание, что Cmake теперь поддерживает файлы испытаний с помощью включения .moc внизу.
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"
Не связан с StackOverflow