0

我正在使用黄瓜 + gherking 组合的 Ogurets 框架制作测试场景。这些测试是针对用 Dart 语言编写的 Flutter 应用程序。

我最近发现测试驱动程序不会执行实际的应用程序。例如在我的情况下:

我有一个登录功能的应用程序。导航到 Logout 并单击它后,应用程序不会返回登录屏幕(尽管它确实在后端工作),但是当我通过 main.dart 文件执行实际应用程序而不使用 Ogurets 配置时,一切都按预期工作。

所以我想知道,

在测试场景中是否有任何可能的方法来执行实际的应用程序?可以说它可以执行应用程序的发布版本。

不确定这是否有意义。

感谢您提供可能的提示

4

1 回答 1

0

所以当 Ogurets 运行时,它会执行一个命令来“flutter run”你的应用程序,并且使用 Flutter Driver 的标准机制,它会在你正在运行的应用程序和 Ogurets 代码之间创建一个 tcp 链接。但是要做到这一点,你必须在你的应用程序中启用额外的 Flutter Driver 代码,这样就无法运行你的“实际应用程序”,否则这个 TCP 链接将不会形成。

通过这个 TCP 链接执行标准 Flutter Driver 命令,您还可以执行额外的命令。因此,您的实际应用程序正在执行,就好像您正在使用“flutter run”运行它一样 - 您甚至可以通过这种方式在真实设备上运行它,但它永远不会是您发布的应用程序,因为它不会有这个额外的 TCP 链接代码.

如果您无法理解为什么您的应用程序会这样运行,Ogurets Flutter 的文档确实说明了您可以如何运行和调试应用程序的两个方面,因此您可以在调试模式下运行您的 Flutter 应用程序,然后运行您的测试,让它连接并自动化应用程序,然后调试它为什么没有返回到您的登录页面。这是我建议你做的。

于 2020-11-03T19:16:02.367 回答