Getting QML tests to reference QML in another directory
-
I'm trying to get QML tests to work, but I can't get any imports from the app directory to work.
I have my application in panel/app/ (main.qml, Page1.qml, Page1Form.ui.qml)
I have my tests in panel/qmltest/panel/qmltests/qmltest.pro looks like:
TEMPLATE = app TARGET = tst_app CONFIG += warn_on qmltestcase SOURCES += tst_app.cpp IMPORTPATH += $$PWD/../app QML_IMPORT_PATH += $$PWD/../app
panel/qmltests/tst_app.qml looks like:
import QtQuick 2.3 import QtTest 1.0 TestCase { name: "MathTests" /* just an example. TODO test app pages*/ Page1Form { } function test_max_speed() { var got = max_left_speed() compare(got, 5000, "Max speed " + got + " != 5000") } }
I run it like this:
../../build-gxrpanel-private_5_8-Debug/qmltests/tst_app -import "/home/dchristian/src/gxrpanel/app"And get:
file:///home/dchristian/src/gxrpanel/qmltests/tst_app.qml:8:5: Page1Form is not a type
Page1Form {
^
It's not resolving the QML file.If I run it under strace, it's trying to open: /home/dchristian/src/gxrpanel/qmltests/Page1Form.qml
Which implies that it's ignoring the import path.What's the right way to get a QML test to reference the app QML?
Thanks,
Dan -
@DanCA-A I don't know if it will help but I put my qml files into a resource (qrc) for my project. Then as long as you set up your qrc properly and reference the files with a proper url they will all know about each other.
As for your specific "on the filesystem" case I don't have any answers for you there.
-
That sounds interesting, but I'm not sure how to "set up your qrc properly and reference the files with a proper url ".
I already have a qrc file in the app directory, so I tried referencing it by adding it to qmltests.pro like this:
RESOURCES += $$PWD/../app/qml.qrcThe qrc file looks like this (all local relative references):
<RCC> <qresource prefix="/"> <file>main.qml</file> <file>Page1.qml</file> <file>Page1Form.ui.qml</file> ...
It builds OK, but things still don't work. Same error as before.
I don't know if how I imported it changed the paths. Is there a way to list the resource paths?
I'm still referencing it as "Page1". Is that the right way to reference it?
I'm new to Qt, so I may be missing something obvious.
Thanks,
Dan -
@DanCA-A said in Getting QML tests to reference QML in another directory:
../../build-gxrpanel-private_5_8-Debug/qmltests/tst_app -import "/home/dchristian/src/gxrpanel/app"
Missed a "/" in your import path? Is that
/home/dchristian/src/gxr/panel/app
?