问题标签 [flutterdriver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - Flutter 小部件与 Flutter 驱动程序
我正在为一个用Flutter
. 我按照这本 Flutter Cookbook测试 Flutter 应用程序,学习如何编写小部件和集成测试。
本教程完美运行,但我仍然坚持自己的集成测试。
为了简化,假设我有一个应用程序,只包含一个TextField
:
我想为这个应用程序编写一个测试。例如,我想测试以下场景:
- 打开应用程序
- 检查是否
TextField
为空 - 选择
TextField
- 输入“你好,世界!”
- 检查是否
TextField
包含“你好,世界!”
我写了以下Widget
测试,效果很好:
该测试通过了,但我想编写一个集成测试,或多或少做相同的事情,以便能够在真实设备上对其进行测试。事实上,如果这个 Widget 测试通过,它可能会在所有设备上通过。但在我的应用程序中,我有更复杂的小部件和它们之间的交互,我希望能够在 Android 和 iOS 上启动测试。
我尝试使用 编写集成测试Flutter driver
,但在文档和示例中没有找到我想要的。
如何检查Widget
属性,以验证我的应用程序是否按预期运行?
我写了以下示例:
Flutter Cookbook 教程解释了如何通过 Text 检索对象,这将有助于检查 Text 是否存在,但例如是否可以检查 Container 颜色是否为红色?小部件和集成测试之间的限制在哪里?
编写 Widget 测试非常简单,但我没有找到很多关于如何使用 Flutter 驱动程序编写更复杂的集成测试的示例或文档。
flutter - 用颤振测试时有没有办法触摸屏幕?
偏移量中有一个名为 dx,dy 的变量,有没有办法使用这个变量来触摸特定位置?还是有其他方法?我想触摸整个屏幕上的任何屏幕。
flutter - VmService时间戳与flutter驱动时间线事件时间戳不对应
我在我做的飞镖测试
每个测试运行大约 30 秒。出于某种原因,在测试之后我有类似的东西
在时间轴第一个事件 timestampMicros 是
还:
我使用 vmsStartTest 和 vmsEndTest 过滤掉与每个测试相关的事件,并且由于此类问题,我错过了时间线上与测试相关的所有事件。请帮助我了解为什么会发生这种情况以及如何处理?
flutterdriver - Flutter Driver - 如何知道哪个“waitFor”命令失败了?
我正在使用 Flutter Driver 为我们的应用程序编写一些集成测试,并且我正在尝试使用该waitFor
命令等到元素出现。
该命令运行良好并等待我的元素,或者在找不到它时失败。我的问题是,当它失败时,控制台中的日志不会告诉我哪些waitFor
调用失败了。
例如,我运行以下代码来等待 myButton1 和 myButton2:
但是,当我运行测试时,它们会失败并显示以下错误消息:
此信息不会告诉我是 myButton1 还是 myButton2 失败了。它也没有从我的测试中给我任何代码行来指示哪些行实际上有错误。
对此有什么想法吗?
ios - 运行 Flutter Driver 测试时如何禁用推送通知提示
我使用 Flutter Driver 运行我的 e2e 测试。我使用的典型命令是:
但是,在添加推送通知支持后,我的测试在启动时超时,因为显示了推送通知提示。运行 Flutter Driver 测试时如何授予访问权限或跳过提示?
flutter - 访问颤振测试导致 tearDownAll
我需要在tearDownAll
回调中访问测试结果。我想检查执行期间是否有任何测试失败。
我研究了Invoker
、Declarer
、和fileEngine
等类。似乎这是我需要的代码。LiveTestController
test_core.dart
不幸的engine
是,无法从外部访问。我也没有找到用于检查test_core
库中测试结果的 API。
有没有办法检查以前的任何测试是否失败?我想在测试组的a tearDownAll()
or函数中使用它。test()
flutter - Flutter 集成测试和 Gitlab CI/CD
我正在尝试根据本教程使用 Fastlane 和 GitLab 为我的 Flutter 应用程序设置 CI/CD ,但是我在使用 Flutter 驱动程序自动化 Flutter 集成测试时遇到了一些困难。我遇到的问题是,当所有测试都成功完成时,应用程序实例保持活动状态(例如,没有退出代码),这意味着 Gitlab 阶段没有进一步的脚本被执行。例如,当测试失败时,我收到的消息是:
我收到退出代码 255,我假设 Gitlab Runner 会将其识别为失败并停止执行进一步的阶段(构建和部署)?
但是,如果测试通过,我得到的只是:
00:05 +3: All tests passed!
,并且应用程序似乎仍在运行。
我正在使用tearDownAll
函数,但它似乎没有帮助:
添加exit(0)
或exit(255)
输入tearDownAll
确实正确关闭了实例,但是我现在可以读取测试是否通过/失败,因此我可以将退出代码设置为 0/255。之前是否有人处理过集成测试和 GitLab CI/CD,或者遇到过 Flutter Driver 的类似问题?
flutter - 如何使用 Flutter 测试驱动程序从进度对话框中获取文本
我有一个颤振应用程序。目前我正在尝试使用测试驱动程序进行自动化集成测试。
这就是我想要做的。
我想知道是否有可能获得第二步的布尔值。我试图做这样的方法:
但我无法用上述方法做到这一点。
此进度对话框包含文本“正在加载...”,但我也无法使用 find.text 执行此操作。
有没有办法正确地做到这一点?
flutter - 查找没有键的元素
我仍然是在测试中使用颤振驱动程序的新手,但据我所知,我们可以用来定位/识别元素的标识符很少,比如按文本、按类型等
但问题是,我要测试的应用程序没有我可以用来定位它们的标识符(如果我错了,请纠正我).. 应用程序的小部件代码如下所示
该小部件在扩展的类上的位置StatefulWidget
。
如何在我的测试脚本中找到该图标并单击它?我可以使用这样的东西吗?我应该使用什么类型的取景器?(byValueKey?bySemanticLabel?byType?还是什么?)
flutter - Flutter 驱动程序处理最小化的应用程序
我正在为我的颤振应用程序制作一些测试场景。其中一项功能是“关于我们”部分。当点击“关于我们”时,用户被重定向到网页并且应用程序被最小化。这是一个问题,因为测试场景在这个地方失败了。Flutter 无法找到任何组件,并且在此特定错误上失败
是否有任何可能的解决方案可以从后台最小化应用程序?
我试图使用默认的颤振钩子,但没有正确的结果。
这些是我使用的文件和方法
和 LoginPage 中的方法