我们一直在为Flutter项目开发一个集成测试套件。我们可以在Android和iOS模拟器上本地运行该套件,也可以在Chrome上运行该应用的Web版本。现在,我们希望在GitLab上运行集成测试套件,作为CI管道的一部分。
因为我们不想让集成测试与真实的Firebase项目交互,所以我们使用Firebase模拟器,我们有一个bash脚本来启动模拟器,用数据填充Firestore模拟器,用测试帐户填充Auth模拟器(通过运行typescript/javascript脚本)。
然而,我找不到任何关于如何(或者是否有可能)运行模拟器并在Firebase测试实验室中用测试数据填充它们的文档。
缩小来看,使用测试实验室来运行集成测试套件是否明智?我希望从一个曾在DevOps上工作过的专业flutter项目的人那里得到一些建议!
我看了以下页面,但找不到问题的答案:https://firebase.google.com/docs/test-lab/android/instrumentation-testhttps://firebase.google.com/docs/test-lab/android/continuous此外,通过Google或堆栈溢出也很难找到好的答案,因为测试实验室也调用了他们的虚拟设备模拟器,生成了关于这些模拟器而不是Firebase模拟器的结果。
我尝试过的一些Google / Stack溢出搜索:
"firebase emulators" "test lab" site:stackoverflow.com
flutter "firestore" "test lab"
firebase test lab run custom script
1条答案
按热度按时间t9aqgxwy1#
使用测试实验室运行集成测试套件是否明智?
我会说是的--它是最成熟的 * 设备实验室 * 平台之一。它有很好的文档,使用相当广泛。你只需要意识到它的局限性--你刚刚看到了其中一个:)
我找不到任何关于如何(或者甚至是否可能)运行模拟器并在Firebase测试实验室中用测试数据填充它们的文档。
这是不可能的--你不能在测试结束之前或之后运行任何脚本。你没有任何类型的shell访问权限来允许你运行Firebase模拟器。
另外,我认为你可以尝试修改一下,让它正常工作--例如,在GitHub Actions上运行Firebase模拟器,将它们暴露在互联网上,然后在Test Lab上运行测试(将应用程序中的API URL更改为Firebase模拟器)。但我怀疑这是否值得--为什么不创建第二个Firebase项目作为“测试/测试”环境呢?