travis-ci pyqt应用程序创建失败

时间:2017-04-06 23:26:10

标签: python pyqt travis-ci pyqt5

为了测试我的代码是pyqt5应用程序的插件,我正在编写创建虚拟QApplication对象的测试。

但是,每当我尝试在本地创建QApplication代码时,都会按预期工作,但在travis中会出现段错误。

我将问题指向以下一行:

qapp = QtWidgets.QApplication([])

这是我得到的错误(取自travis日志):

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

这是travis-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的问题还是我做错了什么?

2 个答案:

答案 0 :(得分:3)

您需要在Travis上运行xvfb才能执行图形应用程序(如果您不需要任何GUI,请改用QCoreApplication)。

您可以follow Travis' docs或(因为看起来您正在使用pytest),请使用我的pytest-xvfb plugin

顺便说一句:pytest' -s标志(不隐藏"传递"测试的输出)在调试这样的问题时非常有用。

答案 1 :(得分:1)

在gitlab CI / CD上,您可以使用QT_QPA_PLATFORM: "offscreen"

请参见https://stackoverflow.com/a/55442821/6000005