You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 15:31:02