如何在github action linux上运行flutter集成测试

问题描述 投票:0回答:1
  - name: Install xvfb
    run: sudo apt-get install xvfb

  - name: Start Xvfb
    run: |
      sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
      echo "Xvfb started"

  - name: Run integration tests
    run: |
      export DISPLAY=:99
      cd pangea_flutter
      echo "Running integration tests"
      flutter test -d linux ${{inputs.test_file}}
    timeout-minutes: 20

GHA 工作流永远不会完成。它只是继续处理,没有任何错误。当我检查日志时,我看到

test 0: awaiting connection to test device
。 然后我手动取消该作业。

flutter github-actions flutter-integration-test
1个回答
0
投票

这个答案有很多方法。但我尝试过使用 libglu1-mesa 进行图形应用程序。我使用 subosito/flutter-action 来处理 Flutter 设置,这使得该方法更快、更高效,而不是从头开始手动执行,还使用 Xvfb 设置来正确启动运行集成测试所需的虚拟显示,因此在测试中效果更好如果您要 e2e 运行它,则需要使用场景。

这是我编写的代码供您参考。

name: Flutter Integration Tests

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest

    env:
      DISPLAY: :99

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Install dependencies
      run: sudo apt-get update && sudo apt-get install -y libglu1-mesa xvfb

    - name: Set up Flutter
      uses: subosito/flutter-action@v2
      with:
        flutter-version: 'stable'

    - name: Install Flutter dependencies
      run: flutter pub get

    - name: Start Xvfb
      run: |
        sudo Xvfb $DISPLAY -screen 0 1280x1024x24 > /dev/null 2>&1 &
        echo "Xvfb started"

    - name: Run integration tests
      run: |
        cd your_directory_name_flutter
        flutter test --machine integration_test 2>&1 | tee integration_test.log
    timeout-minutes: 20
© www.soinside.com 2019 - 2024. All rights reserved.