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

问题描述 投票:1回答:2

为了测试我的代码是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的问题还是我做错了什么?

python pyqt travis-ci pyqt5
2个回答
4
投票

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

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

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


1
投票

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

https://stackoverflow.com/a/55442821/6000005

© www.soinside.com 2019 - 2024. All rights reserved.