我想要一个Travis CI设置,该设置可以让我在Android和iOS环境中运行flutter driver
测试。为此,我希望我必须在不同的环境中安装Flutter,Android和iOS。
我在该主题上能够找到的大多数帖子都非常过时,或者具有令人难以置信的复杂设置。在我的搜索中不断出现的一些是:
Test Flutter apps on Travis,作者Yegor Jbanov。这一部分涉及单元和小部件测试(flutter test
),但不涉及集成测试。
这是从2017年初开始的,Travis CI可能简化了它的API,因为我设法使其仅与此兼容:
language: dart
dart:
- stable
dart_task:
- dartfmt
install:
- git clone https://github.com/flutter/flutter.git -b stable
script:
- ./flutter/bin/flutter doctor
- ./flutter/bin/flutter test
.travis.yml
in the Flutter samples repo。不过,这里的设置对我来说似乎非常复杂。.travis.yml
。我在前面提到的示例中的Flutter unit, widget and integration testing with IOS and Android emulators on Travis-CI和script
步骤可以用install
替换为jobs
。这样,每个阶段将代表一种步骤。单元和窗口小部件合为一个阶段,对Android和iOS的集成测试为另外两个阶段,这与Maurice McCabe和Flutter的示例相似。例如:
stage
如果我可以为jobs:
include:
- stage: Flutter Test
language: dart
os: linux
install: git clone $FLUTTER_GITHUB -b stable
before_script:
- ./flutter/bin/flutter doctor
script:
- ./flutter/bin/flutter test
- stage: Integration Test on Android
os: linux
dist: trusty
language: android
android: # the things here are what probably needs to be fixed
components:
- build-tools-28.0.3
- android-28
install: git clone $FLUTTER_GITHUB -b stable
before_script:
- ./flutter/bin/flutter doctor
script:
- ./flutter/bin/flutter drive --target=test_driver/app.dart
任务创建一个stage
,从组织的角度讲也不错。
您可以看一下这个项目
dartfmt
我认为它具有您正在寻找的所有组件。它是Dart程序包,在解决方案中具有Flutter的Sqlite Scaffolding Generator @ Dart Framework ORM M8集成项目。
CI管道是为Travis CI构建的(主要基于Maurice example)。 McCabe's article文件可能包含您需要的所有部分。
感谢@MirceaMatei和Maurice McCabe的帮助。
stage
和app
文件夹组成。 packages
部分使Travis在每个阶段重复该设置,从而避免了在每个阶段重复进行此操作。我正在共享我当前的(尽管不完整)设置,但将通过
install
进行持续改进,这是与社区进行交互以改进代码的一种比StackOverflow更好的方法-这不是其目的。
总的来说,我认为Travis CI在Flutter方面确实是丢球-也许在一般情况下是Android。 this Github Gist是我最近接触过的许多从业人员大肆宣传的一种更简单的选择,即Codemagic,它还提供代码签名和自动部署到iOS和Android应用程序商店。
我真的不喜欢Travis集成测试文档。创建纯Android应用程序的人也提出了类似的问题。
无论如何,这是我在搜索过程中发现的一些有用资源:
Android 28 licenses have not been accepted
Android 28 licenses have not been accepted
[请不要在此处发布代码改进建议,而应在Maurice McCabe's Unit and Integration Tests with Travis Article on Medium中。每当有用的迭代到达时,我都会在自己下方更新the Github Gist代码。
yaml