GitHub Action Linux环境下Flutter集成测试卡住问题求助
Fix for Flutter集成测试在GitHub Actions Linux环境中卡在"awaiting connection to test device"的问题
以下是针对你遇到的问题的几种解决方案,按推荐程度排序:
1. 使用xvfb-run简化显示环境配置
手动启动Xvfb容易出现时序问题或DISPLAY变量未正确生效的情况。xvfb-run可以自动管理Xvfb的启动、停止以及显示环境变量的设置,避免手动配置的疏漏。
修改后的测试步骤:
- name: Run integration tests run: | cd pangea_flutter echo "Running integration tests" xvfb-run --auto-servernum flutter test -d linux ${{inputs.test_file}} timeout-minutes: 20
--auto-servernum参数会让xvfb自动选择可用的显示编号,避免硬编码:99导致的冲突。
2. 确保启用Flutter Linux桌面支持
在运行测试前,确认Flutter已开启Linux桌面平台支持,添加以下步骤:
- name: Enable Flutter Linux desktop support run: flutter config --enable-linux-desktop
3. 手动启动Xvfb时等待其完全初始化(保留原有配置时使用)
如果坚持手动启动Xvfb,需添加等待逻辑确保显示服务完全就绪后再执行测试:
- name: Start Xvfb run: | sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & echo "Xvfb started" # 等待Xvfb初始化完成 sleep 5 # 验证显示是否可用 xdpyinfo -display :99 > /dev/null 2>&1 || { echo "Xvfb初始化失败"; exit 1; }
同时可以将DISPLAY变量全局设置在工作流中,避免每个步骤单独导出:
env: DISPLAY: :99
4. 安装缺失的系统依赖
Linux环境下运行Flutter应用可能需要一些系统依赖包,添加以下步骤安装:
- name: Install Linux dependencies for Flutter run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev
内容的提问来源于stack exchange,提问作者Aseem
相关产品推荐
相关产品推荐

