121*_*8GG 5 qt unit-testing qml
我已经阅读了 Qt 在TestCase上提供的文档、Qt 快速测试参考文档、Ubuntu QML 单元测试、使用 qmltestrunner 第 1 和 2 部分进行测试、编写和运行 qml 测试用例、如何创建 Qt 快速测试
我所发现的一切是:
Qmltestrunner 是一个用于单元测试的工具。该工具允许将 QML 文件作为测试用例执行。这些文件应包含 test_functions。Qmltestrunner是一个开源项目,其源代码可以在github上找到。
但我正在寻找几个问题的答案:
qmltestrunner 文档?我在哪里可以找到它?(找不到它的维基页面)
qmltestrunner 是 qt 快速测试框架的一部分吗?
qmltestrunner 有哪些依赖项?
有没有合适的例子可以让我找到有关 QML 单元测试的完整解释?qt 快速测试框架解释了我无法理解的运行测试。
谢谢
qmltestrunner.exe -h
可能会对您有所帮助。大多数选项在Qt 测试概述中进行了描述。QUICK_TEST_MAIN(xxx)
和一个包含 的.proCONFIG += qmltestcase
文件,并构建此项目来运行 QML 单元测试。该项目的输出二进制文件是(几乎相同)qmltestrunner。Qt5Core.dll
, Qt5Gui.dll
, Qt5Network.dll
, Qt5Qml.dll
, Qt5Quick.dll
, Qt5QuickTest.dll
, Qt5Test.dll
, Qt5Widget.dll
。如果需要的话,还有一些用于 QML 文件的额外模块(例如QtQuick Controls 2)TestCase
描述如何在 QML 中编写单元测试。要运行该文件,只需qmltestrunner.exe -input C:\My\Testing\File\Path\tst_myComponentTest.qml
在命令行中运行即可。以下是有关如何使用单元测试编写 QML 组件的简单分步示例。例如,假设我们有一个ExpandButton
单击时会展开的 a:
//ExpandButton.qml
import QtQuick 2.7
import QtQuick.Controls 1.2
Button {
width: 50; height: 50
onClicked: { width = 100; }
}
Run Code Online (Sandbox Code Playgroud)
要测试此行为,请编写tst_ExpandButton.qml
:
import QtQuick 2.7
import QtTest 1.0
Item {
width: 800; height: 600
ExpandButton {
id: expandButton
anchors.centerIn: parent
}
TestCase {
name: "ExpandButton"; when: windowShown
function test_clickToExpand() {
var widthBeforeClick = expandButton.width;
mouseClick(expandButton);
var widthAfterClick = expandButton.width;
verify(widthBeforeClick < widthAfterClick);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我们有两个 QML 文件,ExpandButton.qml
以及tst_ExpandButton.qml
. 运行单元测试qmltestrunner.exe -input D:\aaa\bbb\tst_ExpandButton.qml
,您可以看到结果:
********* Start testing of qmltestrunner *********
Config: Using QtTest library 5.7.0, Qt 5.7.0 (i386-little_endian-ilp32 shared (dynamic) release build; by MSVC 2015)
PASS : qmltestrunner::ExpandButton::initTestCase()
PASS : qmltestrunner::ExpandButton::test_clickToExpand()
PASS : qmltestrunner::ExpandButton::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 13ms
********* Finished testing of qmltestrunner *********
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3765 次 |
最近记录: |