【发布时间】:2022-01-25 04:35:00
【问题描述】:
正在将使用 Flutter SDK 2.0.6 的应用升级到 2.8.1。更新了所有测试,以便它们在英特尔 Macbook Pro 上本地通过。升级了我们的 CircleCI 服务器用来指向使用新 SDK 的 docker 镜像。 docker 文件如下所示:
FROM circleci/android:api-30
RUN sudo apt-get install -y locales
RUN sudo dpkg-reconfigure locales
RUN /usr/sbin/locale-gen C.UTF-8
ENV LANG='C.UTF-8' LC_ALL='C.UTF-8'
RUN curl https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_2.8.1-stable.tar.xz -o /tmp/flutter.tar.xz && \
sudo tar -xvJ -C /opt -f /tmp/flutter.tar.xz && \
sudo chown -R circleci:circleci /opt/flutter && \
rm -f /tmp/flutter.tar.xz
ENV PATH="${PATH}:/opt/flutter/bin"
现在 CI 服务器上的一些单元测试失败并出现以下错误:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following SocketException was thrown running a test:
Connection failed (OS Error: No such file or directory, errno = 2), address =
/var/run/dbus/system_bus_socket, port = 0
When the exception was thrown, this was the stack:
#0 _NativeSocket.startConnect (dart:io-patch/socket_patch.dart:681:35)
我对在 CI 服务器中运行 Flutter 有点不知所措。该错误是什么意思,我可以采取哪些步骤进行故障排除?
稍后在堆栈跟踪中它是ConnectivityLinux._startListenConnectivity (package:connectivity_plus_linux/src/connectivity.dart:61:20)
【问题讨论】:
-
您能否添加一个最小的测试示例,该测试可以通过 Flutter SDK 2.0.6 通过但不通过 Flutter SDK 2.8.1?
-
区别在于SDK 2.8.1在本地运行,SDK 2.8.1在CI服务器上运行。看测试是因为connetivity_plus_linux这个包。