跳转到主要内容

pytest支持PyQt和PySide应用程序

项目描述

pytest-qt 是一个pytest 插件,允许程序员为 PyQt5PyQt6PySide2PySide6 应用程序编写测试。

主要用法是使用 qtbot 通用配置,负责按需创建 qApp 并提供模拟用户交互的方法,如按键和鼠标点击。

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, qt_api.QtCore.Qt.MouseButton.LeftButton)

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

这允许你在每次代码更改后测试并确保你的视图层表现符合预期。

Supported Python versions version conda-forge ci coverage docs black

特性

要求

从版本 4.1.0 开始,pytest-qt 需要 Python 3.7+。

PySide6PySide2PyQt6PyQt5 一起使用。

如果在执行测试时已导入上述任何库,则将使用该库。

如果没有,pytest-qt 将尝试按以下顺序导入和使用 Qt API

  • PySide6

  • PySide2

  • PyQt6

  • PyQt5

要强制使用特定 API,请将配置变量 qt_api 设置为 pytest.ini 文件中的 pyside6pyside2pyqt6pyqt5

[pytest]
qt_api=pyqt5

或者,您可以将环境变量 PYTEST_QT_API 设置为上述相同的值(如果都设置,则环境变量胜过配置)。

文档

完整的文档和教程可在 Read the Docs 上找到。

变更日志

请查阅 变更日志页面

错误/请求

请在 问题跟踪器 中报告任何问题或功能请求。

贡献

欢迎贡献,因此请随时提交错误或功能请求。

拉取请求被高度赞赏!如果您能,请包括一些测试新代码或测试错误的修复,并确保在贡献者名单中包含您自己。 :)

为了准备您的环境,创建一个虚拟环境,并使用 dev 附加功能以可编辑模式安装 pytest-qt

$ pip install --editable .[dev]

之后,安装 pre-commit 以进行预提交检查

$ pre-commit install

运行测试

测试使用 tox 运行。

$ tox -e py37-pyside2,py37-pyqt5

pytest-qt 使用 black 进行格式化,并在提交前使用 pre-commit 进行代码风格检查。您可以使用以下命令在本地安装 pre-commit

$ pip install pre-commit
$ pre-commit install

贡献者

感谢以下人员

由以下提供支持

pycharm

pydev

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

pytest-qt-4.4.0.tar.gz (125.4 kB 查看哈希值)

上传时间 源代码

构建分发

pytest_qt-4.4.0-py3-none-any.whl (36.3 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面