Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Solved QML TestCase not working. Why?

    QML and Qt Quick
    1
    2
    413
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bogong last edited by

      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?

      1 Reply Last reply Reply Quote 0
      • B
        bogong last edited by bogong

        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_v4

        Happy testing to all.

        1 Reply Last reply Reply Quote 2
        • First post
          Last post