QML TestCase not working. Why?
Solved
QML and Qt Quick
-
Hello!
I am trying to use QML TestCase in the way of:import QtQuick 2.15 import QtQuick.Window 2.15 import QtTest 1.15 Window { id: oMainWindow; visible: true; width: 640; height: 480; title: qsTr("Hello World"); TestCase { name: "QMLTestExample"; function test_Example_01() { compare(2 + 2, 4, "2 + 2 = 4"); } function test_Example_02() { compare(2 + 2, 5, "2 + 2 = 5"); } } }
It's just default application where added TestCase QML component. It's not working. There are error:
QQmlApplicationEngine failed to load component qrc:/main.qml:32:2: Type TestCase unavailable file:///Users/alexandr/Tools/qt/5.15.0/clang_64/qml/QtTest/TestCase.qml:44:1: module "Qt.test.qtestroot" is not installed
Why is that? What am I missing?
-
Solution found. Issue closed.
Forgotten about:- in *.pro file
CONFIG += qmltestcase
- in main.cpp
#include <QtQuickTest> QUICK_TEST_MAIN(example)
- rename main.qml file onto tst_gui.qml (any other tests should be OK with name like this "tst_*.qml") and use this
// System includes import QtQuick 2.15 import QtTest 1.15 // Application includes // Application window component TestCase { name: "MathTests"; function test_math() { compare(2 + 2, 4, "2 + 2 = 4"); } function test_fail() { compare(2 + 2, 5, "2 + 2 = 5"); } }
All based on https://doc.qt.io/qt-5/qtquicktest-index.html#running-tests
Example is here https://github.com/ArboreusSystems/arboreus_examples/tree/master/qt/QTest/UnitTest_v4Happy testing to all.