如何使用Python和PyQt对我的GUI程序进行单元测试?

比尔盖*_*尔盖子 19 python qt unit-testing pyqt

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

单元测试通常会对函数进行简单输入,并检查其简单输出.但是我该如何测试用户界面呢?

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

WLi*_*Lin 23

有一个关于使用Python的单元测试框架,QTEST一个很好的教程在这里.

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

  • 参考文献中的代码。页面位于此处:[https://github.com/jmcgeheeiv/pyqttestexample](https://github.com/jmcgeheeiv/pyqttestexample) (2认同)

ray*_*yon 13

作为另一种选择还有pytest-qt如果您更喜欢使用pytest

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

它允许您测试pyqt应用pyside程序并允许模拟用户交互。这是其文档中的一个小示例:

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!"

Run Code Online (Sandbox Code Playgroud)