【问题标题】:How do I unit testing my GUI program with Python and PyQt?如何使用 Python 和 PyQt 对我的 GUI 程序进行单元测试?
【发布时间】:2013-02-09 06:24:48
【问题描述】:

我听说单元测试是保持代码正常工作的好方法。

单元测试通常把一个简单的输入放到一个函数中,并检查它的简单输出。但是如何测试 UI?

我的程序是用 PyQt 编写的。我应该选择 PyUnit 还是 Qt 内置的 QTest?

【问题讨论】:

标签: python qt unit-testing pyqt


【解决方案1】:

有一个很好的教程关于使用 Python 的单元测试框架和 QTest here

这不是选择一个或另一个。相反,它是将它们一起使用。 QTest 的目的只是模拟击键、鼠标点击和鼠标移动。 Python 的单元测试框架处理其余部分(设置、拆卸、启动测试、收集结果等)。

【讨论】:

  • 链接似乎不起作用。也许this 是一样的?
  • @djvg 两个链接都失效了。还有其他链接吗?
  • @a-hendry:抱歉,我不知道,我的已经是猜测了。
  • 感谢Wayback Machine,可以找到原始链接的内容here
  • @Ray B 谢谢。
【解决方案2】:

如果您更喜欢使用pytest,也可以选择pytest-qt

https://pytest-qt.readthedocs.io/en/latest/intro.html

它可以让您测试pyqtpyside 应用程序并允许模拟用户交互。以下是其文档中的一个小示例:

def test_hello(qtbot):
    widget = HelloWidget()
    qtbot.addWidget(widget)

    # click in the Greet button and make sure it updates the appropriate label
    qtbot.mouseClick(widget.button_greet, QtCore.Qt.LeftButton)

    assert widget.greet_label.text() == "Hello!"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-17
    • 2011-11-04
    • 2016-02-22
    • 2012-03-22
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2013-05-07
    相关资源
    最近更新 更多