簡體   English   中英

無法在 github 操作中創建(python)QApplication

[英]Can't create (python) QApplication in github action

我對我的(python)Qt gui 進行了一些單元測試,它需要 QApplication 實例,但是創建一個對我來說總是失敗(即以核心轉儲和應用程序在與QApplication()一致時中止結束)。 到目前為止我嘗試過的是:

  • 創建方法:
    • 模塊級別的普通app = QApplication()
    • app = QApplication(['--platform offscreen'])
    • 使用 pytest-qt 中的夾具來管理 QApplication 對象創建, qtbot傳遞給我的測試
  • 我什至嘗試過qt的兩個python端口,即:
    • PyQt5
    • PySide2
  • 虛擬屏幕:

我已經嘗試使用https://github.com/nektos/act在本地調試這個問題,但使用這種方法問題是不可重現的(即一切都按預期工作),直到我添加了herbstluftwm ,即我唯一能夠herbstluftwm要實現的是,在本地它也開始失敗。

我還能檢查什么? 你有沒有看到 QApplication 在 github actions 上創建成功? 順便提一句。 如何讓 Qt 的輸出在 github 操作中可見? (我添加了env: QT_DEBUG_PLUGINS: 1並且看不到任何錯誤)

感謝@eyllanesc 對 MRE 的請求,我創建了這個https://github.com/konserw/mre最小示例存儲庫,它允許我自己找到解決方案。 事實證明,您需要安裝xvfblibxkbcommon-x11-0 ,但您不能運行xvfb服務或herbstluftwm 然后你需要使用xvfb-run運行你的測試命令(在我的例子中是coverage ),在 github 操作的情況下需要覆蓋的絕對路徑,就像這樣:

xvfb-run `which coverage` run -m pytest

我希望這將有助於 github 操作的未來用戶努力讓 PyQt5 或 PySide2 GUI 測試運行。

順便提一句。 pytest 正在使 Qt 的QT_DEBUG_PLUGINS輸出QT_DEBUG_PLUGINS ,因此用一些重現問題的最小腳本替換測試命令與普通的 python 調用是關鍵。 https://github.com/konserw/mre/runs/509156615?check_suite_focus=true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM