我需要将颤振测试驱动器集成到 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'
我将chrome和chrome驱动程序版本升级到最新版本,现在它可以工作了!所以这个代码版本运行良好。