首页 > 解决方案 > 如何使用 docker 在浏览器中运行颤振测试?

问题描述

Dockerfile:

FROM ubuntu:latest

# Prerequisites
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/London
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt update && apt install -y lcov curl wget git unzip xz-utils zip libglu1-mesa openjdk-8-jdk

# Install chrome
RUN apt update && apt install -y xvfb gnupg2
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt update

ENV DEBIAN_FRONTEND=noninteractive
RUN apt install google-chrome-stable -y

RUN Xvfb :99 -screen 0 1024x768x16 -nolisten tcp -nolisten unix &
ENV DISPLAY :99

# Set up new user
RUN useradd -ms /bin/bash dev
USER dev
WORKDIR /home/dev

# Prepare Android directories and system variables
RUN mkdir -p Android/sdk
ENV ANDROID_SDK_ROOT /home/dev/Android/sdk
RUN mkdir -p .android && touch .android/repositories.cfg

# Set up Android SDK
RUN wget -O sdk-tools.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
RUN unzip sdk-tools.zip && rm sdk-tools.zip
RUN mv tools Android/sdk/tools
ENV PATH "$PATH:/home/dev/Android/sdk/tools/bin"

RUN yes | sdkmanager --licenses
RUN yes | sdkmanager "build-tools;29.0.2" "patcher;v4" "platform-tools" "platforms;android-29" "sources;android-29"
ENV PATH "$PATH:/home/dev/Android/sdk/platform-tools"

# Set up Flutter SDK
RUN git clone -b master https://github.com/flutter/flutter.git
ENV PATH "/home/dev/flutter/bin:${PATH}"

ENV no_proxy 127.0.0.1,localhost
RUN flutter config --android-sdk $ANDROID_SDK_ROOT

# Run basic check to download Dark SDK
RUN flutter channel stable
RUN flutter config --enable-web
RUN flutter upgrade
RUN flutter doctor --verbose

RUN flutter create app
WORKDIR /home/dev/app

RUN flutter test
# RUN flutter test --platform chrome

WORKDIR /home/dev
RUN rm -rf app

ENTRYPOINT /bin/bash

flutter doctor打印:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.1, on Linux, locale en_US)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] Proxy Configuration
[✓] Connected device (1 available)

flutter test运行良好:

00:02 +1: All tests passed!  

flutter test --platform chrome -v打印错误:Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

[  +17 ms] <- compile org-dartlang-app:///main.dart
00:00 +0: compiling /home/dev/app/test/widget_test.dart                                                                                                               [+20923 ms] Serving tests at http://localhost:33545/static/index.html?managerUrl=ws%3A%2F%2Flocalhost%3A33545%2F0&debug=false
[  +44 ms] Using Google Chrome 89.0.4389.82 

[  +96 ms] [CHROME]:[0311/150935.435550:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or
directory
[   +1 ms] [CHROME]:
[        ] [CHROME]:DevTools listening on ws://127.0.0.1:43571/devtools/browser/1a79813e-09ca-4997-aa8e-32bebefe408e
02:28 +0: compiling /home/dev/app/test/widget_test.dart                                                                       

如何使用 docker 在浏览器中运行颤振测试?

标签: dockerflutter

解决方案


推荐阅读