26

CmakeでビルドしてCTestで実行したQTテストコードとCMakeLists.txtの例を教えてください。見つからないようです!

-カーティス

4

2 に答える 2

38

cmake 2.8.11 と Qt5.2を使用した例を次に示します。cmake は、下部に .moc-include があるテストファイルをサポートするようになったことに注意してください。

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"
于 2014-05-09T08:48:54.317 に答える
12

チャーム(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 マクロを呼び出すことです。たとえばチャームを見て、実際の動作を確認してください。

于 2011-01-21T09:11:24.927 に答える