- 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
。
然后我手动取消该作业。
这个答案有很多方法。但我尝试过使用 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