我如何在AWS Device Farm,Saucelabs,Firebase Test Lab等基础架构中非本地运行Flutter集成测试(flutter_driver)?
Running flutter_driver tests在我的本地计算机上可以轻松流畅地运行,但是基于云的移动测试服务没有安装必需的依赖项才能使用Flutter CLI命令。
在Flutter存储库中有一些地方表明这是可能的,但是我很难找到确切的条件才能实现此目的(我在Android方面的经验有限和iOS集成测试)。
我找到的一些参考文献:
讨论在flutter_gallery中进行集成测试的评论:https://github.com/flutter/flutter/issues/18879#issuecomment-400816050
添加Firebase测试实验室集成测试的github问题:https://github.com/flutter/flutter/issues/11718
我需要在flutter应用程序中添加什么才能在AWS Device Farm,Saucelabs,Firebase Test Lab等内部进行远程集成测试?
感谢您的帮助。
答案 0 :(得分:4)
尽管我们并未正式支持AWS Device Farm上的Flutter框架和Flutter测试,但确实有一种方法让您使用“自定义环境模式”并预先选择一个受支持的框架来运行这些测试。我的建议是执行以下操作:
{code}
- >-
if [ $DEVICEFARM_DEVICE_PLATFORM_NAME = "Android" ];
then
# Run EC2 setup code here
curl https://storage.googleapis.com/flutter_infra/releases/beta/linux/flutter_linux_v0.11.3-beta.tar.xz -o flutter_linux_v0.11.3-beta.tar.xz
tar xf flutter_linux_v0.11.3-beta.tar.xz
fi
if [ $DEVICEFARM_DEVICE_PLATFORM_NAME = "iOS" ];
then
# Run Mac setup code here
curl https://storage.googleapis.com/flutter_infra/releases/beta/macos/flutter_macos_v0.11.3-beta.zip -o flutter_macos_v0.11.3-beta.zip
unzip -qq flutter_macos_v0.11.3-beta.zip
fi
- mv flutter ~/flutter
- echo "export PATH=$PATH:$HOME/flutter/bin">> ~/.bash_profile
- export PATH=$PATH:$HOME/flutter/bin
- flutter devices
{code}
在AWS Device Farm上进行好运测试!我已经确认这些步骤确实可以在我们的测试平台上正确设置Flutter。
答案 1 :(得分:1)
注意:这解决了导致您提出问题的假设。不是您问题的直接答案。
可以仅使用仿真器(无实际设备)在云上运行Flutter集成测试。下面的文章介绍了如何进行设置。本文包括一个有关Travis-CI的工作示例。
Flutter unit, widget and integration testing with IOS and Android emulators on Travis-CI
可以在here上找到GitHub上的源代码,以及指向最新版本的链接,包括在iOS和Android上运行的集成测试结果。随时克隆并用作您自己的项目的起点。
如果您要构建具有广泛分布(许多用户)等的复杂应用,则可能需要在实际设备上运行集成测试。