如何在Docker上针对本地开发环境运行Flutter测试?

时间:2020-07-27 16:40:05

标签: docker flutter dart-pub

我们在Flutter的屏幕快照(黄金)测试中发现的一个问题是,它们可能对不同平台上的差异敏感-例如,在一个开发人员的Linux机器上通过的测试可能在另一个Macbook上失败。为了减轻这些差异,我们希望能够在Docker容器中运行黄金测试,以便可以在开发机器和CI之间完美地再现测试。

如果我重新克隆Flutter应用程序存储库,然后运行:

docker run -it --rm -v /path-to-repo:/code cirrusci/flutter:v1.12.13-hotfix.8 bash

然后我可以在容器内愉快地运行flutter test等。完美!

但是,如果我尝试执行相同的操作,则会遇到麻烦,但是这次使用的是我一直在本地工作的存储库。

首先,我在容器内收到警告:

Warning! This package referenced a Flutter repository via the .packages file that is no longer available. The repository from which the 'flutter' tool is currently executing will be used instead.
  running Flutter tool: /home/cirrus/sdks/flutter
  previous reference  : /my-install-of-flutter/flutter

然后出现一系列编译器错误,如下所示:

Compiler message:
/tmp/flutter_test_listener.JONVES/listener.dart:6:8: Error: Error when reading '/my-install-of-flutter/lib/flutter/packages/flutter_test/lib/flutter_test.dart': No such file or directory
import 'package:flutter_test/flutter_test.dart';

我想这是因为.packages被Flutter读取了,但是在容器内部并不适用(因为这与Flutter的安装方式完全不同)。有没有办法让Flutter忽略.packages,以便我可以在容器内正确运行这些测试?

0 个答案:

没有答案