2026-05-03 21:02:30 +02:00
|
|
|
# QML unit tests — opt-in, only built when BUILD_TESTING is on (CTest's
|
|
|
|
|
# convention). Wired from ../CMakeLists.txt under the same guard.
|
|
|
|
|
#
|
|
|
|
|
# Run via:
|
|
|
|
|
# cmake -S . -B build -DBUILD_TESTING=ON
|
|
|
|
|
# cmake --build build --target qml_unit_tests
|
|
|
|
|
# ctest --test-dir build --output-on-failure -R qml_unit_tests
|
|
|
|
|
#
|
|
|
|
|
# Or from the skeleton / example Makefiles via `make qmltest`.
|
|
|
|
|
|
2026-05-05 19:19:56 +02:00
|
|
|
find_package(Qt6 6.5 REQUIRED COMPONENTS QuickTest Network)
|
|
|
|
|
|
|
|
|
|
# A tiny PhpQml.Bridge.Tests QML module that exposes the in-process
|
|
|
|
|
# stub HTTP server used by tst_reactive_list_model.qml. Static so it
|
|
|
|
|
# links into the test exe alongside the production bridge module.
|
|
|
|
|
qt_add_qml_module(php_qml_bridge_tests
|
|
|
|
|
URI PhpQml.Bridge.Tests
|
|
|
|
|
VERSION 1.0
|
|
|
|
|
STATIC
|
|
|
|
|
OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/PhpQml/Bridge/Tests
|
|
|
|
|
SOURCES
|
|
|
|
|
TestHttpServer.h
|
|
|
|
|
TestHttpServer.cpp
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(php_qml_bridge_tests PUBLIC
|
|
|
|
|
Qt6::Core
|
|
|
|
|
Qt6::Network
|
|
|
|
|
Qt6::Qml
|
|
|
|
|
)
|
2026-05-03 21:02:30 +02:00
|
|
|
|
|
|
|
|
qt_add_executable(qml_unit_tests main.cpp)
|
|
|
|
|
target_link_libraries(qml_unit_tests PRIVATE
|
|
|
|
|
Qt6::QuickTest
|
|
|
|
|
Qt6::Qml
|
|
|
|
|
Qt6::Quick
|
2026-05-05 19:19:56 +02:00
|
|
|
php_qml_bridge # production module — type implementations
|
|
|
|
|
php_qml_bridgeplugin # …and its auto-generated QQmlEngineExtensionPlugin
|
|
|
|
|
php_qml_bridge_tests # in-process HTTP stub
|
|
|
|
|
php_qml_bridge_testsplugin # …and its plugin
|
2026-05-03 21:02:30 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# QUICK_TEST_MAIN reads QUICK_TEST_SOURCE_DIR from the macro definition
|
|
|
|
|
# at compile time. Point it at this directory so qmltestrunner finds
|
|
|
|
|
# the tst_*.qml files regardless of where the binary runs.
|
|
|
|
|
target_compile_definitions(qml_unit_tests PRIVATE
|
|
|
|
|
QUICK_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_test(NAME qml_unit_tests COMMAND qml_unit_tests)
|