Sono molto nuovo a Qt e Qt Quick. Sto convalidando il framework di test dell'unità Qt Test per Qt Quick e non sono in grado di capire come eseguire i test. Ecco quello che ho, ho creato un progetto SUBDIRS con la seguente struttura:Test unitari per 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
"Progetto" è l'applicazione da testare ed i miei casi di test sono in "ProjectTest/Resources/qml.qrc/tst_gui. 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")
}
}
Ho un pulsante con id "click_button" in "Progetto/Resources/qml.qrc/main.qml" che voglio simulare. Quando eseguo il progetto di test, ottengo fallimento con un messaggio:
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
Sono sicuro che sto facendo qualcosa di sbagliato. Qualcuno potrebbe aiutarmi?
Non è necessario importare il file 'main.qml'? In 'tst_gui.qml' qualcosa come' import "Project/Resources/qml.qrc/main.qml" ' – Tarod
Ho provato un paio di metodi diversi per importare il file main.qml, usando l'istruzione import e usando un alias. Entrambi non hanno funzionato. Ho finito per spostare tutto il codice qml da 'main.qml' a' tst_gui.qml'. Funziona bene ora, dal momento che il testcase è in grado di trovare il click_button ora. – medasumanth
Ottimo! :) Penso che dovresti scrivere la tua risposta e accettarla. Buona programmazione! – Tarod