Интегрируйте тест флаттера в пользовательском интерфейсе с docker: драйв-тест на безголовом chrome - PullRequest
0 голосов
/ 19 июня 2020

Мне нужно интегрировать тест-драйв флаттера в GitlabCI. Я считаю, что самый простой способ создать контейнер docker (я использую GitlabCI, но у вас такая же проблема, если вы используете чистый Docker или CircleCI или TravisCI или какой-то конвейер в AWS или многие другие пути) с chrome как устройство. Но я получаю эту ошибку:

 Found multiple connected devices:
test_drive_1  | Web Server • web-server • web-javascript • Flutter Tools
test_drive_1  | Chrome     • chrome     • web-javascript • Google Chrome 74.0.3729.108
test_drive_1  | Using device Web Server.
test_drive_1  | Starting application: test_driver/app.dart
test_drive_1  | Launching test_driver/app.dart on Web Server in release mode...
test_drive_1  | Compiling test_driver/app.dart for the Web...                      29.8s
test_drive_1  | test_driver/app.dart is being served at http://localhost:36571
test_drive_1  | Application finished.
test_drive_1  | Waiting for connection from Dart debug extension at http://localhost:36571
test_drive_1  | Unable to start WebDriver Session for Flutter for Web testing. 
test_drive_1  | Make sure you have the correct WebDriver Server running at 4444. 
test_drive_1  | Make sure the WebDriver Server matches option --browser-name. 
test_drive_1  | WebDriverException (61): invalid argument: perfLoggingPrefs specified, but performance logging was not enabled
test_drive_1  |   (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Linux 4.15.0-33-generic x86_64)
flutter_test_app_test_drive_1 exited with code 0

Полный пример здесь . Чтобы воспроизвести проблему, сделайте следующее:

git clone https://gitlab.com/nicolalandro/flutter_test_app.git
cd flutter_test_drive

cd docker
docker build -t flutter_test_drive .

cd ..
docker-compose up

Вот интересный файл:

  • Dockerfile:
from cirrusci/flutter:stable

RUN sudo apt update && sudo apt install -y gdebi-core libnss3 libgconf-2-4
ADD google-chrome-stable_current_amd64.deb .
RUN sudo gdebi -n google-chrome-stable_current_amd64.deb

WORKDIR /app
ADD chromedriver .
RUN sudo chmod +x chromedriver

# upgrade flutter
RUN cd /home/cirrus/sdks/flutter && git checkout master && git pull && flutter upgrade

RUN flutter config --enable-web && flutter doctor
  • run_test_drive . sh:
#!/bin/sh
/app/chromedriver --whitelisted-ips --port=4444 &
FOO_PID=$!
# nohup sh -c /app/chromedriver --whitelisted-ips &

flutter doctor
flutter pub get
flutter clean

# run test
flutter drive --target=test_driver/app.dart --release

kill $FOO_PID
  • docker -compose.yml
version: '3'

services:
  test_drive:
    image: flutter_test_drive
    volumes:
    - .:/flutter_project
    working_dir: /flutter_project
    command: "./run_test_drive.sh"
    ports:
    - '8000:8000'

1 Ответ

0 голосов
/ 19 июня 2020

Я обновил версии драйверов chrome и chrome до последних, и теперь он работает! Итак, эта версия кода работает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...