问题标签 [pytest-qt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
388 浏览

python - 为什么 pytest-qt 找不到 Python 3.4 的 PyQt?

我正在使用 AppVeyor(Think Travis,但适用于 Windows)再次运行几个不同版本的 Python 的一些测试。测试依赖于 PyQt 和 pytest-qt。在某些配置中,pytest-qt 找不到 PyQt,抱怨:

pytest-qt 需要安装 PySide、PySide2、PyQt4 或 PyQt5

PyQt5 测试正在运行,但测试还需要运行需要 PyQt4 的旧版 Python。

Python 2.7,32 位

在 Python 2.7(32 位)上,我使用 conda 安装 PyQt:

它成功安装了pyqt-4.11.4-py27_7

然后我用 pip 安装 pytest-qt:

它成功安装了 pytest-qt-2.4.0。

然后我运行测试。没关系。

Python 2.7,64 位

完全一样的故事。工作正常。

Python 3.4,64 位

这次它安装了pyqt 4.11.4-py34_7,加上相同版本的pytest-qt,但是在测试运行时,它崩溃了:

我尝试指定环境变量PYTEST_QT_API=pyqt4or PYTEST_QT_API=pyqt4v2,但它抱怨:

ImportError:DLL 加载失败:找不到指定的模块。

我不知道 Python 3.4 可能有什么不同。我需要做些什么来帮助 pytest-qt 找到 PyQt 的安装?

0 投票
2 回答
671 浏览

python-3.x - 使用 Qtbot 在菜单栏和工具栏中模拟鼠标单击

我是使用 PYtestqt 在 PYQT5 中开发的记事本 GUI 自动化。当我尝试使用 qtbot 单击菜单栏或工具栏选项时,它没有模拟单击

0 投票
1 回答
841 浏览

python - 如何在 pytest-qt 中处理模态对话框而不模拟对话框

我正在使用 pytest-qt 来自动化 PyQt GUI 的测试。对话框需要作为测试的一部分进行处理(不应模拟对话框)。

例如,必须处理单击按钮后出现的文件对话框。有2个问题

  1. 在按钮单击命令之后,程序控制转到事件处理程序而不是下一行,我可以尝试将鼠标单击/击键发送到对话框。

  2. 由于 QDialog 没有添加到主窗口小部件中,因此它没有列在主窗口小部件的子窗口中。那么如何获取QDialog的引用呢?

我尝试了多线程,但没有奏效,后来我发现 QObjects 不是线程安全的。

0 投票
2 回答
560 浏览

python-3.6 - QApplication 实例/qtbot 夹具导致 travis-ci 中止和核心转储

致力于了解如何对基于 PySide2 的应用程序进行自动化单元测试。但是,每当我尝试QApplication在测试中初始化实例时,无论是通过PySide2自身还是通过pytest-qtqtbot 夹具,travis-ci 都会中止测试。但是,它在本地工作。

我尝试使用qtbot和中的qapp固定装置pytest-qt,尝试不同的travis-ci发行版,例如xenialand trusty,以及包括pytest-xvfb我看到的类似 stackoverflow 问题的答案所推荐的插件,但在上述任何组合中都没有任何效果。

但是,当travis-ci尝试运行它时,它会因核心转储而中止。有人可以帮我解决这个问题吗?

0 投票
2 回答
982 浏览

python - 在 CircleCI 上运行 pytest-qt

我正在尝试在 CircleCI 上运行需要pytest-qt(用于测试 PySide2 对话框)的测试。我收到以下错误:

我正在使用这个配置文件:

非常感谢任何帮助,在此先感谢。

0 投票
1 回答
893 浏览

python - 如何在pytest-qt中单击按钮后检查正确打开窗口

我想在我的项目中测试一个模块,但我遇到了一些问题。我不知道如何在单击按钮后检查窗口的正确打开。

我有 Windows SelectAddingBookTypeWindow 和 AddSchoolBookWindow。我想检查在单击名为 selectBtn 的按钮后是否会打开 AddSchoolBookWindow。

我当前的测试(我对最后一个字符串有问题,因为我不知道我必须使用哪种方法):

我的课程: A. SelectAddingBookTypeWindow

B. AddSchoolBookWindow

这是完整代码的一小部分,但完整代码并不能解决这个问题。

0 投票
1 回答
442 浏览

python - 使用 qtbot.mouseClick 选择 QListWidgetItem

如何使用 qtbot.mouseClick 单击 QListWidgetItem?

我使用以下代码进行了尝试,但在最终断言上失败了:

有什么我想念的吗?

0 投票
1 回答
454 浏览

python - 如何测试使用 exec_() 调用的自定义对话框窗口?

我正在尝试为我的项目编写系统测试。我有一个启动各种窗口的控制器类。但是,我似乎无法通过 qtbot 使用 exec 来控制 Windows 启动。

这是一个MVCE:

我想测试用户是否成功在 lineedit 中输入数据。在我的测试中,我能够成功单击 WindowA 中的按钮以启动 WindowB,但无法使用 keyClicks 在 lineedit 中输入数据。

这是测试:

0 投票
1 回答
591 浏览

python - 如何使用 pytest-qt 自动拖动鼠标?

我有一个 pyqt 窗口,它在按下鼠标时跟踪鼠标移动。我正在尝试使用 pytest-qt 编写一个测试来自动化这个动作。

这是一个示例类:

我想编写一个测试用例,打开窗口然后将鼠标向右拖动 100 像素并释放。

这是我尝试过的:

我也尝试过使用 pyautogui:

运行测试时,鼠标左键似乎在拖动时未按住。标签不会更新,位置属性也不会改变。

0 投票
1 回答
1591 浏览

python - 如何使用 pytest-qt 点击 QMessageBox?

我正在为PyQt具有pytest-qt. 我想创建打开图形窗口,做一些测试然后关闭窗口,而不是为每个测试打开一个新窗口,即。对窗口本身使用模块夹具。我通过调用本地函数 aQtBot而不是使用默认夹具,并删除了嘲笑者,成功地完成了这部分工作。所以我非常接近我的目标。

但是,但我无法关闭窗口(并测试QMessageBox关闭事件)。

我举了一些例子,比如 如何处理模态对话框及其git讨论,或者qmessage问题;这似乎接近我的问题。建议使用计时器等待QMessageBox出现然后单击按钮选项,但显然我无法正确应用它们。在我的尝试中,pytest获得关闭需求,而不是点击dialog框。所以,我必须点击自己才能完成测试。

这是一个小例子,带有文件GUI.py

pytest名为的文件test_GUI.py

知道我缺少什么吗?任何其他想法或建议也将不胜感激。