누구나 Qm 테스트 코드와 Cmake로 빌드하고 CTest로 실행 한 CMakeLists.txt의 예제를 제공 할 수 있습니까? 나는 아무것도 찾을 수없는 것!CMake로 Qt 테스트 빌드
-Kurtis
누구나 Qm 테스트 코드와 Cmake로 빌드하고 CTest로 실행 한 CMakeLists.txt의 예제를 제공 할 수 있습니까? 나는 아무것도 찾을 수없는 것!CMake로 Qt 테스트 빌드
-Kurtis
Charm (시험/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-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"
적합합니다. 굉장해. 무리 감사. –
이렇게하면 [이 페이지] (http://qt-project.org/wiki/Writing_Unit_Tests)에 따르면 누군가가 시간을 더 절약 할 수 있기를 바랍니다. "CMake는 moc include가있는 qtest 파일을 바닥." –
그런 경우 테스트 파일을 자동 저장하는 것을 기억해야합니다. – jackyalcine