1
为了测试我的代码是一个pyqt5应用程序的插件,我正在编写创建虚拟QApplication对象的测试。travis-ci pyqt应用程序创建失败
但是,每当我尝试创建一个QApplication代码在本地按预期工作,但在Travis中发生段错误。
我精确定位的问题下面一行:
qapp = QtWidgets.QApplication([])
这是我得到的错误(从特拉维斯记录所采取的):
tests/idaplugin/test_plugin.py::test_plugin_creation /home/travis/.travis/job_stages: line 53: 2382 Aborted (core dumped) PYTHONPATH=. py.test ./${PROJECT} ./tests/${PROJECT} --verbose --cov-report= --cov=$PROJECT
这里是特拉维斯-CI工作:https://travis-ci.org/nirizr/rematch/jobs/219490893
而这里的测试片段:
def test_plugin_creation():
from PyQt5 import QtWidgets
qapp = QtWidgets.QApplication([])
# test be here, requires a QApp to function
plugin = plugin_rematch.PLUGIN_ENTRY()
... extra test code removed ...
这是Travis的问题还是我做错了什么?
谢谢!如果我不需要看到任何GUI,但可以使用不同的可见小部件和pytest-qt来自动化与这些小部件的用户交互,我可以使用QCoreApplication吗? – NirIzr
不,如果你想使用QtWidgets,你需要使用Xvfb。 –
我明白了。非常感谢! – NirIzr