[Interest] Unable to run QtQuick TestCase from qrc resources
Christoph Keller
theoriginalgri at gmail.com
Wed Apr 25 16:59:25 CEST 2018
You're right, that line looks wrong indeed.
I've got a Qt version to debug now. I don't come that for, already
exists at the TestCaseCollector
(https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L493).
Internally this creates QQmlComponent and I can reproduce the error with:
> QGuiApplication app(argc, argv);
>
> QFileInfo fileInfo(":/tst_TestItem.qml");
>
> QQmlEngine engine;
> QQmlComponent component(&engine, fileInfo.absoluteFilePath());
> QList<QQmlError> errors = component.errors();
>
> for(const QQmlError &error : errors) {
> qWarning() << error.toString();
> }
>
> Q_ASSERT(errors.isEmpty());
fileIinfo.absoluteFilePath() resolves to ":/tst_TestItem.qml" which
fails to load.
If manually changed to "qrc:/tst_TestItem.qml", it succeeds loading.
It seems the replacement from ":/" to "qrc:" like in the line you found
needs to be applied in TestCaseCollector, too.
Christoph
On 25.04.18 16:08, Igor Mironchik wrote:
>
> Hi,
>
> if (path.startsWith(QLatin1String(":/")))
> view.setSource(QUrl(QLatin1String("qrc:") + path.midRef(2)));
>
>
> Bug is here... path.midRef(1) should be
>
> or
>
> QLatin1String("qrc:/")
>
>
> On 25.04.2018 16:16, Christoph Keller wrote:
>>
>> They should, at least the source of the framework sets the path to
>> ":/" on Android:
>> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L422
>>
>> The same applies for the sourcePath property on all platforms:
>> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L536
>>
>> My tst_TestItem.qml is loaded, but it can't find the normal QtQuick
>> Item it should test.
>>
>> Christoph
>>
>>
>> On 25.04.18 14:41, Igor Mironchik wrote:
>>>
>>> Hi,
>>>
>>>
>>> On 25.04.2018 15:19, Igor Mironchik wrote:
>>>>
>>>> Hi,
>>>>
>>>> Try qrc:/ as prefix...
>>>>
>>>
>>> Will not work too... Does qrc:/ supported by Qt Quick Test at all?
>>> Seems that no...
>>>
>>>>
>>>> On 25.04.2018 13:53, Christoph Keller wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> is there a way to run the QtQuick TestCases from qrc resources?
>>>>> Running them from the file system works as as expected but setting
>>>>> the source path to ":/" leads to the TestCase being loaded but it
>>>>> cannot find other imports (in the same directory).
>>>>>
>>>>> I've attached an example which always outputs:
>>>>>
>>>>> file::/tst_TestItem.qml:4:1: TestItem is not a type
>>>>>
>>>>> TestItem {
>>>>>
>>>>> ^
>>>>>
>>>>> Christoph
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Interest mailing list
>>>>> Interest at qt-project.org
>>>>> http://lists.qt-project.org/mailman/listinfo/interest
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Interest mailing list
>>> Interest at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180425/421171a7/attachment.html>
More information about the Interest
mailing list