Jestem bardzo nowy w Qt i Qt Quick. Zatwierdzam ramy testów jednostkowych testu Qt dla Qt Quick i nie jestem w stanie zrozumieć, jak uruchomić testy. Oto co mam, stworzyliśmy projekt subdirs o następującej strukturze:Testy jednostkowe dla 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” to aplikacja do testowania i moje przypadki testowe są w „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")
}
}
mam przycisk z id "click_button" w "Project/Resources/qml.qrc/main.qml", że chcę, aby symulować. Kiedy uruchomić projekt testowy, mam awarię z komunikatem:
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
Jestem pewien, że robię coś złego. Czy ktoś mógłby ci pomóc?
Nie musisz importować pliku 'main.qml'? W 'tst_gui.qml' coś jak' importuj "Project/Resources/qml.qrc/main.qml" ' – Tarod
Próbowałem kilka różnych metod importowania pliku main.qml, używając instrukcji import i używając aliasu. Oba nie działały. Zakończyłem przenoszenie całego kodu qml z 'main.qml' na' tst_gui.qml'. Teraz działa dobrze, ponieważ testcase jest teraz w stanie znaleźć przycisk click_. – medasumanth
Świetnie! :) Myślę, że powinieneś napisać własną odpowiedź i ją zaakceptować. Szczęśliwe kodowanie! – Tarod