问题标签 [flutter-integration-test]

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.

0 投票
1 回答
178 浏览

flutter - 集成测试在颤振驱动中工作正常,但在 Firebase 测试实验室中输入文本时挂起

我为我的应用设置了以下登录测试:

硬编码的 3 秒延迟并不理想,但没有它我无法使用驱动程序运行测试。

使用驱动程序在我的本地计算机上运行很好。我使用命令

但是当我将 Espresso 测试上传到 Firebase 测试实验室并查看视频时,登录屏幕会加载,但第一个enterText()命令似乎没有效果。文本字段中没有添加任何内容,并且测试只是超时。

我尝试了 and 的各种组合tester.tap()tester.showKeyboard()但到目前为止,没有任何结果。

如何enterText()在 TestLab 支持的 Espresso 环境中正常工作?

0 投票
0 回答
40 浏览

flutter - 应用程序崩溃后 Flutter Driver 继续运行测试

我正在实现需要应用程序从本机崩溃的组件测试——因为只有在崩溃之后,底层模块才会生成包含预期变量的崩溃报告。问题是如果应用程序崩溃/或重新启动,颤振驱动程序将无法继续工作。

如何让 Flutter 驱动程序预测到应用程序会崩溃并跳过它?这应该是 Flutter Driver 的功能请求吗?

注意:类似于 Appium 所做的事情(Appium 具有此功能)。

0 投票
2 回答
581 浏览

flutter - 我们如何在 Flutter 中为集成测试生成 json 报告?

我正在使用 Flutter 的新集成测试包编写集成测试。测试使用颤振驱动命令执行良好,但它没有给我任何 json 报告。flutter test --machine 不适用于集成测试。

我想为执行的测试生成一个 json 报告。是否有任何其他命令或任何解决方法?

0 投票
1 回答
69 浏览

flutter - Powershell 或 CMD - 我想同时运行两个命令而不等待第一个命令完成

我想运行两个命令(不管它是在 powershell 还是 cmd 中)。命令如下。我尝试同时运行两者,但因为 chromedriver 需要运行 - 它永远挂起并且永远不会到达第二个命令。

  • chromedriver --port=4444
  • 颤振驱动 --target=test_driver/app.dart --browser-name=chrome --release --no-headless

我正在关注此处的文档(朝向页面底部) Flutter 集成测试(但这对我的问题并不那么重要 - 只是关于我在做什么的 FYI)

我一直在搜索“如何运行两个命令”,但我通常得到的答案是使用“&”或“&&”,但在我的情况下,这不起作用,因为 chromedriver 在执行时只会保持打开状态。

谢谢,

迈克尔·史密斯

0 投票
0 回答
131 浏览

android - 在颤振小黄瓜集成测试中授予相机权限与Android中的BDD

在使用带有 BDD 的 Flutter gherkins 进行集成测试中,如何授予相机和存储的权限。

0 投票
0 回答
274 浏览

flutter - Flutter 集成测试不适用于 Firefox

嗨,我在使用 geckodriver 运行颤振驱动器时遇到问题(我的带有 M1 的 sys macos)我正在使用的命令:

我的配置是按照此处的说明创建的: https ://flutter.dev/docs/testing/integration-tests

当我尝试使用 --no-headless 时,我看到 Firefox 正在运行并转到测试应用程序 URL,然后会话结束。

这就是我在日志中的内容:

来自 geckodriver 的日志:

来自 geckodriver 的附加日志

当然一切都在chromedriver上正常工作

0 投票
1 回答
417 浏览

flutter - 哪种是测试 Flutter 应用程序的最佳方法

我正在为一个依赖 API 的 Flutter App 工作。我们正在考虑一种测试策略,我们想知道哪种方法是最好的。

根据他们的文档(https://flutter.dev/docs/testing),他们有 3 个级别的测试:

  • 单元测试
  • 小部件测试
  • 集成测试(Pump 小部件新方法)
  • 集成测试(Flutter 驱动程序旧方法)

由于我们的资源有限,我们想知道我们应该先拿起什么。从那时起,很少有人在测试上投入精力。

我们的情况如下:

  • 单元测试(50% 覆盖率)
  • 小部件测试(0% 覆盖率)
  • 集成测试(Pump 小部件新方法 - 0% 覆盖率)
  • 集成测试(Flutter 驱动程序旧方法 - 仅涵盖少数测试场景,主要流程)
  • API 测试:单元测试和功能测试的覆盖率为 0%

而且我们没有使用任何测试自动化框架,例如 WebdriverIO + Appium。

我们想知道我们应该在每个 Flutter 测试类别中投入多少精力,以及关于 Flutter 集成测试,是否只使用新方法(Pumping each widget)进行集成测试是否有意义,或者我们还需要集成测试(颤振驱动程序旧方式)?仅依靠使用泵小部件方法进行集成测试并不会让我们感到非常自信。

我们正在考虑的一些选项是:

  • 强大的 API 覆盖率(单元测试和功能测试) + 强大的 Flutter 单元测试覆盖率 + 很少使用 Flutter 驱动程序的集成测试
  • 测试金字塔方法:大量单元测试 + 使用 pump 小部件新方法、API 测试和小部件测试的更少集成测试 + 更少的 E2E 测试(可能使用 Flutter 驱动程序方法或外部自动化框架的集成测试)和手动测试
  • 只需单元测试 + Widget 测试 + 集成测试抽小部件的新方法,力求在三者中分别实现 100% 的覆盖率。

我们还认为,以新的方式(泵送小部件)维护集成测试在某种程度上非常耗时,因为您需要对应用程序的视图和内部有很好的理解。对于没有太多 Flutter 开发经验的 QA 自动化人员来说,这可能具有挑战性。

我应该首先涵盖哪些 Flutter 自动化测试类别,单元测试、小部件测试还是集成测试?我应该改用 WebdriverIO + Appium 等外部自动化框架吗?

0 投票
1 回答
189 浏览

flutter - PlatformException,尝试模拟 file_picker 以进行集成测试后的无效参数,Flutter

我已经在我的应用程序中使用了 file_picker,现在我创建了一个集成测试。我一直在寻找一种模拟 file_picker 或依赖项的方法,结果如下:

使用该代码,我收到如下错误:

[MethodChannelFilePicker] 平台异常:PlatformException(错误,无效参数:'FilePickerResult' 的实例,null,null)

如何解决这个问题?

0 投票
0 回答
54 浏览

flutter - 如何在 Flutter 小部件测试中组合两个 Finder?

使用package:flutter_test,我可以创建一个查找器,用一个键查找小部件:

或通过文字:

我还可以找到从这个小部件下降的小部件:

或者祖先:

但是我如何结合这些查找器来验证是否有一个带有“计数器”键和“0”作为文本的小部件?例如:

0 投票
0 回答
284 浏览

flutter - Flutter 集成测试 - 无法停止应用程序 - 仅在 iOS 上

我正在模拟器 android 和 iOS 上对我的应用程序进行集成测试

android 一如预期完成所有测试都通过并且应用程序停止

但是 iOS 完成了测试并且所有测试都通过了,但是以错误“无法停止应用程序”结束

我的 app.dart 文件

我的 app_test.dart 文件

我在 MacBook Air M1 上使用 android studio

我能做些什么来解决这个错误?

谢谢