gpt4 book ai didi

python - 无法在 github 操作中创建(python)QApplication

转载 作者:行者123 更新时间:2023-12-04 14:15:24 25 4
gpt4 key购买 nike

我的(python)Qt gui 有一些单元测试,这需要 QApplication 实例,但创建一个对我来说总是失败(即以核心转储结束,应用程序中止与 QApplication() )。到目前为止我尝试过的是:

  • 创作方法:
    • 模块级别的普通 app = QApplication()
    • app = QApplication(['--platform offscreen'])
    • 使用来自 pytest-qt 的 fixture 来管理 QApplication 对象的创建,即将 qtbot 传递给我的测试
  • 我什至尝试了 qt 的两个 python 端口,即:
    • PyQt5
    • PySide2
  • 虚拟屏幕:

我试过使用 https://github.com/nektos/act在本地调试这个问题,但是使用这种方法问题是不可重现的(即一切都按预期工作)直到我添加了 herbSTLuftwm,即我唯一能够实现的是它在本地也开始失败。

我还能检查什么?你在github actions上看到QApplication创建成功了吗?顺便提一句。如何让 Qt 的输出在 github 操作中可见? (我添加了 env: QT_DEBUG_PLUGINS: 1 并且仍然看不到任何错误)

最佳答案

感谢@eyllanesc 对 MRE 的请求,我创建了这个 https://github.com/konserw/mre允许我自己找到解决方案的最小示例 repo 。事实证明,您需要安装 xvfblibxkbcommon-x11-0,但您不能运行 xvfb 服务或 herbSTLuftwm 。然后你需要使用 xvfb-run 运行你的测试命令(在我的例子中是 coverage),在 github 操作的情况下需要覆盖的绝对路径,就像这样:

xvfb-run `which coverage` run -m pytest

我希望这会帮助 github 操作的 future 用户努力让 PyQt5 或 PySide2 GUI 测试运行。

顺便说一句。 pytest 正在静音 Qt 的 QT_DEBUG_PLUGINS 的输出,因此将测试命令替换为纯 python 调用以及一些可重现问题的最小脚本是这里的关键。见https://github.com/konserw/mre/runs/509156615?check_suite_focus=true

关于python - 无法在 github 操作中创建(python)QApplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60692711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com