【问题标题】:Flutter tests error on CI server after SDK upgradeSDK升级后CI服务器上的Flutter测试错误
【发布时间】: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这个包。

标签: linux flutter docker


【解决方案1】:

事实证明,我需要在测试中传入一个模拟的 connectionStream

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多