【发布时间】:2016-01-12 15:24:57
【问题描述】:
我对 Qt 和 Qt Quick 很陌生。我正在验证 Qt Quick 的 Qt Test 单元测试框架,但我无法理解如何运行测试。 这就是我所拥有的,我创建了一个具有以下结构的 SUBDIRS 项目:
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
“Project”是要测试的应用程序,我的测试用例在“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")
}
}
我想要模拟的“Project/Resources/qml.qrc/main.qml”中有一个 ID 为“click_button”的按钮。 当我运行测试项目时,我收到消息失败:
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
我确定我做错了什么。有人可以帮忙吗?
【问题讨论】:
-
您不需要导入您的
main.qml文件吗?在tst_gui.qml中类似于import "Project/Resources/qml.qrc/main.qml" -
我尝试了几种不同的方法来导入 main.qml 文件,使用 import 语句和别名。两者都没有工作。我最终将所有 qml 代码从
main.qml移动到tst_gui.qml。它现在工作正常,因为测试用例现在能够找到 click_button。 -
太棒了! :) 我认为您应该编写自己的答案并接受它。编码愉快!
标签: qt unit-testing qml qttest