Ich bin sehr neu zu Qt und Qt Quick. Ich validiere das Qt Test Unit-Test-Framework für Qt Quick und kann nicht nachvollziehen, wie die Tests durchgeführt werden. Hier ist, was ich habe, habe ich ein SUBDIRS Projekt mit folgenden Struktur erstellt:Unit-Test für Qt Quick
ProjectSolution
ProjectSolution.pro
Project
Project.pro
Sources/main.cpp
Resources/qml.qrc/main.qml
ProjectTest
ProjectTest.pro
Sources/main.cpp
Resources/qml.qrc/main.qml
Resources/qml.qrc/tst_gui.qml
„Projekt“ die Anwendung getestet und meine Testfälle sind in „Project/Ressourcen/qml.qrc/tst_gui werden. qml ".
tst_gui.qml:
import QtQuick 2.5
import QtTest 1.0
TestCase {
name: "UI Testcase"
when: windowShown
function test_button_click() {
mouseClick(click_button, Qt.LeftButton, Qt.NoModifier)
}
function test_key_press() {
keyClick(Qt.Key_Left)
keyClick("a")
}
}
Ich habe einen Knopf mit der ID "click_button" in "Projekt/Resources/qml.qrc/main.qml", die ich simulieren will. Als ich das Testprojekt laufen, bekomme ich Ausfall mit der Meldung:
FAIL! : tst_gui::UI Testcase::test_button_click() Uncaught exception: click_button is not defined
C:\Users\sjayaprakash\Qt Test Projects\Qt Test Validation\QtTestValidation6\QtTestValidation6Test\tst_gui.qml(9) : failure location
Ich bin sicher, dass ich etwas falsch mache. Könnte jemand bitte helfen?
Müssen Sie Ihre 'main.qml' Datei nicht importieren? In 'tst_gui.qml' etwas wie' import 'Projekt/Ressourcen/qml.qrc/main.qml "' – Tarod
Ich habe einige verschiedene Methoden ausprobiert, um die Datei main.qml mit der import-Anweisung und einem Alias zu importieren. Beides hat nicht funktioniert. Ich habe schließlich den ganzen qml-Code von 'main.qml' nach' tst_gui.qml' verschoben. Es funktioniert jetzt gut, da der Testfall den click_button jetzt finden kann. – medasumanth
Großartig! :) Ich denke, du solltest deine eigene Antwort schreiben und sie akzeptieren. Glückliche Kodierung! – Tarod