问题标签 [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 回答
816 浏览

flutter - Flutter 集成测试的热重载?

我已经按照此处的定义在我的项目上设置了 Flutter 集成测试:https ://flutter.dev/docs/testing/integration-tests

我使用了以下开发依赖项:

测试驱动程序只是项目页面中的 C&P:

最终测试:

最后我运行我的测试

flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test.dart

这基本上没问题,但它在每次执行时都会编译,这非常耗时。我是否有机会运行集成测试并拥有与常规开发相同的热重载功能?如何做到这一点?

或者还有其他解决方法吗?我正在考虑先将测试代码编写为单元/小部件测试,然后在执行正确后将其移植到集成测试中。

0 投票
2 回答
779 浏览

flutter - 允许在新的集成测试中运行整个测试文件夹——就像普通的单元测试一样

为每个屏幕都有一个单独的集成测试文件,我想用一个命令来运行所有的集成测试,比如“flutter tests”。我查看了文档,但找不到任何方法来做到这一点。这也会导致 firebase 测试实验室 apk 出现问题。要创建一个 android 测试 apk,我只能指定一个测试文件路径来创建 apk。

目前,我找到了两种解决方法。

  1. 我已经将我的所有测试移到了一个带有组 test的单个 dart 文件中。但是这种解决方法不能很好地扩展。对于 5-10 测试,它工作正常。但是假设我们有 50-75 个测试,那么在单个文件中导航和理解测试将是一团糟。
  2. 创建一个脚本来一一运行所有测试。这可能适用于我们自己的 CI 管道,但这不适用于 firebase 测试实验室。

有没有人能够解决这个问题或任何更好的解决方案?

0 投票
2 回答
714 浏览

flutter - Flutter 集成测试 firebase 身份验证(电子邮件链接或谷歌登录)

我正在向我的应用程序添加集成测试(使用 integration_test 包),但我遇到了问题。

让我解释。我的应用启动的第一步是身份验证,我有 3 个选项:firebase 电子邮件链接、firebase google 登录和 firebase facebook 登录。

阻碍我的是,所有这些登录方法都需要在主应用程序 dart 代码之外执行操作,因此颤振驱动程序无法访问。

我在这里错过了什么吗?如果不是,应该如何处理这种情况?

干杯!

0 投票
1 回答
137 浏览

flutter - 如何创建一个共享目录以在集成测试和小部件测试之间共享代码?

如何在 Flutter 中的集成测试和小部件测试之间创建共享代码目录?可能会有很多,因为他们现在使用与新官方相同的 API

在 Android 本机中,您可以执行以下操作,以便在本地非仪器 UI 测试(引擎盖下的 Roboelectric)和使用 Espresso API 的仪器 Espresso 测试之间共享代码。当然还有各种各样的共享助手,模拟,等等。

我如何在 Flutter 中实现类似的目标?

0 投票
0 回答
97 浏览

flutter - 我无法针对 Google 登录进行集成测试

目前我正在尝试为其他人构建的应用程序构建集成测试。我被谷歌登录卡住了。

具体来说,集成测试找不到谷歌弹出页面。

有没有办法对谷歌标志使用集成测试?

如果没有,我如何使用集成在我选择进行测试的任何页面上开始?

请注意,我还没有构建应用程序;我是来测试应用程序的。

我试图在弹出窗口的文件和文件夹中找到一个页面或任何内容,但我找不到任何内容。

我什至尝试过使用 Dart DevTools,但仍然无法定位登录页面。

至少,我可以绕过这一步并在不同的页面上开始集成吗?

下面是我试图让 Flutter 集成测试与之交互的登录页面的图片。请注意,出于隐私原因已对其进行了修改。

在此处输入图像描述

0 投票
0 回答
163 浏览

flutter - 添加 integration_test 包时应用程序构建崩溃

我有一个简单的应用程序,可以从图库中选择图像。当我将integration_test包添加到应用程序时,它在调试模式下工作正常,但是当我打开图像选择器时构建崩溃。

这是实现:

camera_widget.dart

发布规范.yaml

编辑:删除 integration_test 包后,该应用程序在调试和构建中都可以正常工作。

0 投票
1 回答
491 浏览

flutter - 在 Flutter 测试中查找 CustomScrollView 内的小部件


我在尝试测试我的 Flutter 应用程序时遇到了错误。我有一个自定义小部件,它位于小部件的底部(在第一个视口之外)CustomScrollView。在我的测试中,我想验证它确实存在。
我已经尝试过使用WidgetTester.scrollUntilVisibleas well WidgetTester.drag(就像在颤振框架的测试中所做的那样)。此外,我试图用它来重构我的测试,FlutterDriver这完全把其他一切都搞砸了。
如何滚动到CustomScrollView测试内部的底部?
这个最小复制显示了包含CustomScrollViewContainer 小部件的应用程序,该小部件具有一个屏幕的高度(因此我要查找的小部件不在初始视图中)

这是我最初为查找小部件而编写的测试,当然失败了。

在本次迭代中,我使用了该WidgetTester.scrollUntilVisible函数,但出现以下错误。

我感谢任何有关如何解决此问题并成功测试我的帮助或建议CustomScrollView

0 投票
0 回答
53 浏览

flutter - Flutter IntegrationTest OAuth Login with Chrome Tab

我必须编写一个颤振集成测试,它需要登录到我的应用程序。登录是一个外部网站(使用 chrome 选项卡)。

如何在 chrome 选项卡上输入登录凭据?现在,看起来集成测试 API 在这里不起作用。我无法识别任何查找器,也无法输入文本。

这是我的设置:

  1. 带有登录按钮的颤振屏幕:

在此处输入图像描述

  1. 单击“LOGIN”时,将加载 chrome 选项卡以输入凭据: 在此处输入图像描述

这是我当前的测试代码:

我无法使用集成测试输入凭据。我怎样才能做到这一点?

0 投票
3 回答
932 浏览

flutter - 如何恢复 FlutterError.onError?

在我的应用程序中,我将颤振 onError 记录到 crashalytics,

在运行集成测试时,如果发生一些异常,我会在控制台中得到以下语句并且测试只是挂起,

运行测试时引发以下异常:I/flutter (30479):测试覆盖了 FlutterError.onError 但未能将其返回到原始状态,或者出现无法处理的意外附加错误。通常,这是由在恢复 FlutterError.onError 之前使用 expect() 引起的。

控制台中的上述消息表明onError覆盖有问题,我如何根据控制台FlutterError.onError中的建议返回其原始状态。

请注意,我正在使用新推荐的集成测试方式,

0 投票
0 回答
69 浏览

android - 如何在 Flutter 集成测试期间伪造电池设置/状态?

我们正在开发的 (Android) 应用程序取决于它的插入 (AC) 状态。

因为我们想在连接到我们的构建服务器的真实设备上运行应用程序,所以我们需要一种方法来伪造这种行为,以便在不实际断开设备电源的情况下全面测试应用程序。

现在我已经了解了adb shell dumpsys battery ac 0|1哪些允许我设置它。但我无法在测试期间通过以下方式完成这项工作:

这会导致以下错误:

我也试过了sudo,但结果是一样的。