Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. QML TestCase not working. Why?
Forum Updated to NodeBB v4.3 + New Features

QML TestCase not working. Why?

Scheduled Pinned Locked Moved Solved QML and Qt Quick
2 Posts 1 Posters 707 Views 1 Watching
  • 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 Offline
    B Offline
    bogong
    wrote on 7 Sept 2020, 14:25 last edited by
    #1

    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
    0
    • B Offline
      B Offline
      bogong
      wrote on 8 Sept 2020, 17:43 last edited by bogong 9 Aug 2020, 18:08
      #2

      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
      2

      1/2

      7 Sept 2020, 14:25

      • Login

      • Login or register to search.
      1 out of 2
      • First post
        1/2
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved