我在test_qtbot.py
中有以下代码,该代码显示了一个虚拟小部件,持续了一秒钟
import time
from PyQt5.QtWidgets import QPushButton
def test_widget(qtbot):
widget = QPushButton()
widget.show()
qtbot.addWidget(widget)
now = time.time()
qtbot.waitUntil(lambda: time.time() > now + 1, timeout=5000) # show it for one second
当我使用pytest test_qtbot.py
运行该测试时,运行正常
但是,我也希望在无头环境中进行此测试,所以我尝试了
Xvfb -ac :12 &
DISPLAY=:12 pytest test_qtbot.py
但这会导致核心转储
但是,以下方法确实有效
Xvfb -ac -screen 0 1280x1024x24 :12 &
DISPLAY=:12 pytest test_qtbot.py
知道为什么第一次测试失败吗?
一些其他观察结果:我的测试在Qt5,python3和Debian Stretch上运行。在没有-screen
参数的情况下,针对Qt4,python2.7和Debia Wheezy的类似测试也可以很好地运行