CI 上的 Flutter 黄金测试失败

Flutter golden tests failing on CI

我最近在我的 Flutter 插件中添加了一堆黄金文件测试(并通过 运行ning flutter test --generate-goldens 生成了黄金文件)。所有测试都在我的开发设备上成功通过,但在 Circle CI 上 运行 时始终失败(例如:https://circleci.com/gh/Sub6Resources/flutter_html/78)。

我是否错过了创建黄金测试的步骤?还是我需要将配置选项添加到 Circle CI 以便正确添加图像文件?

取决于操作系统(windows、macos 或 linux)flutter 生成不同的黄金映像。如果您为 iOS 构建,通常 CI 服务使用 linux 机器或 macos。所以你只需要使用与 CI 相同的 OS 来生成黄金图像。

如果您使用的是OSX,则可以启用默认字体平滑。看起来 flutter 也在 golden 测试中使用了那个设置。

因此,快速修复是禁用字体平滑:

defaults -currentHost write -g AppleFontSmoothing -int 0

我认为您在 CircleCI 上使用的是旧的 Flutter ORB。 Flutter ORB 设置为 1.0.2,看起来您的代码需要 3.0.0。我冒昧地 运行 您使用该 ORB 的代码并且它有效。我的意思是,我看到了一些错误,但它们与测试有关。

您只需将 https://github.com/Sub6Resources/flutter_html/blob/master/.circleci/config.yml#L3 更新为:

  codecov: codecov/codecov@3.0.0