Ref*_*a77 6 user-interface qttest qml qtquick2
我必须创建一个单元测试.
但首先,我要弄明白该做什么.有一个QtQuick2-App编写,现在我想用GUI进行单元测试.使用GUI进行单元测试的步骤是什么?阅读Qt文档后,我无法创建任何从测试开始的想法.
希望有人可以帮助我.
编辑:我是能够运行一些测试,加入后tst_button.qml和tst_test.cpp我的项目(main.cpp中是评论现在).这是正确的方法,还是应该为测试创建一个新项目?如果是,需要什么样的项目?最后一个问题:MainForm例如,我是否需要建立我的按键?
tst_button.qml
import QtQuick 2.4
import QtTest 1.0
Rectangle{
id: myRec
property var myMainForm: null
TestCase{
name:"ButtonClick"
when:windowShown
function test_init(){
var createMyWindow = "import QtQuick 2.0; MainForm{id:myForm}"
var myMainForm = Qt.createQmlObject(createMyWindow,myRec)
myRec.myMainForm = myMainForm
}
}
}
Run Code Online (Sandbox Code Playgroud)
tst_test.cpp
#include <QtQuickTest/quicktest.h>
QUICK_TEST_MAIN(test)
Run Code Online (Sandbox Code Playgroud)
测试和调试列出了两种方式:
- Qt Test(也称为testlib) - C++代码单元测试的框架
- Qt快速测试 - QML代码单元测试的框架
您可以使用Qt Test来测试Qt Quick应用程序,但是当您需要访问QML中没有的C++ API时,这通常会更好.
我只是将*.qml文件添加到我的项目中并用我的代码填充它吗?如果是,我该怎么办才能开始测试?
您首先需要将测试作为一个单独的项目,除非您计划使用qmltestrunner(我不知道为什么Qt本身没有记录该工具).
Qt Quick Test文档的Running Tests部分详细介绍了如何启动和运行测试.
在将tst_button.qml和tst_test.cpp添加到我的项目之后,我能够运行一些测试(main.cpp现在在注释中).这是正确的方法,还是应该为测试创建一个新项目?
例如,如果您的应用程序是纯QML并且仅用于运行qmlscene,那么这样做就可以了.但是,如果您打算部署/发送应用程序,则可能需要具有可执行文件,这意味着为应用程序和测试创建单独的项目.
如果是,需要什么样的项目?
你可以有一个SUBDIRS项目,这样你的测试和应用程序本身都可以在Qt Creator中一次打开.像这样的东西:
myapp.pro
app/
main.cpp
app.pro
resources.qrc
main.qml
tests/
tests.pro
data/
tst_stuff.qml
Run Code Online (Sandbox Code Playgroud)
最后一个问题:我是否需要建立我的MainForm以按下按钮?
不.该.ui功能只是一种格式,允许Qt Creator强制执行某些约束,以便更轻松地使用Qt Quick Designer设计Qt Quick UI.MainForm.ui.qml因此只是一种便利.如果您已在QML中拥有现有组件,则可以创建该组件的实例并对其进行测试.
| 归档时间: |
|
| 查看次数: |
2956 次 |
| 最近记录: |