【问题标题】:Flutter: Debugging an integration testFlutter:调试集成测试
【发布时间】:2018-08-26 08:54:01
【问题描述】:

我正在学习 Flutter 并使用 Android Studio 作为我的 IDE,并且在集成测试方面遇到了一些痛点。

作为学习过程的一部分,我编写了一个基本的集成测试。

此集成测试的目的是检查图像小部件(通过 Image.Asset 创建)以查看动态生成的图像源是否为预期值,或者是否正在显示图像。

我使用 IDE 中的终端选项卡运行集成测试,例如:flutter drive --target=my_app/test_driver/user_list_scrolling.dart

我想在我的集成测试方法中添加一个断点,并在 Android Studio 中逐步执行它,以帮助我学习测试功能。

我的问题是:

如何在 Android Studio 中调试集成测试? - 当我正在学习时,我很想在我的集成测试中放置一个断点,并在即时窗口中使用查找器。但是,当我从终端开始我的集成测试时,我的断点似乎被忽略了,我还尝试添加 Debugger(); 命令。执行暂停,但我无法在 Android Studio 中单步执行我的代码。我也尝试在 IDE 中使用“附加到进程”选项,但“选择进程”列表为空。

我可以在 Android Studio 中执行集成测试,而无需手动在终端中输入命令吗? - 我宁愿点击一个按钮而不是记住一个命令。右键单击我的集成测试文件并选择运行似乎不起作用。

如何在集成测试中有效地测试图像小部件? - 通过使用计算值作为第一个参数调用 Image.Asset() 来设置图像源,所以我想确认显示图像/参数是预期值。我猜我需要使用find.byType("Image") 并以某种方式检查源值的结果?

【问题讨论】:

    标签: android-studio debugging flutter integration-testing


    【解决方案1】:

    以下是我使用 Flutter 工具设置集成测试开发的步骤,包括调试:

    1. 将应用配置为侦听共享端口(在本例中为 8888) 将“--observatory-port 8888”添加到“附加参数”

    2. 将集成测试配置为在同一个共享端口上连接 将“VM_SERVICE_URL=http://127.0.0.1:8888/”添加到“环境变量”

    3. 在运行或调试模式下启动应用程序(只需要一次,需要时热重载):

    4. 在运行或调试模式下启动集成测试(根据需要多次):

    您现在可以向应用程序添加断点和/或在调试器中测试和查看源代码和变量。

    下面更详细地描述了如何设置 Android Studio 来开发集成测试。

    A how-to for fast integration test development with existing tooling

    【讨论】:

    • 也许在“附加参数”中需要'--disable-service-auth-codes':--observatory-port 8888 --disable-service-auth-codes
    • 这是否适用于驱动程序的 integration_test 升级?我似乎无法让它工作。
    【解决方案2】:

    出于某种原因,在 Android Studio 中,在调试模式下运行的图标不适用于针对整个目录的配置。创建针对一个文件的配置,或者只需单击 main() 函数旁边的装订线中的“运行测试”图标,然后选择“调试”选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-05
      • 2022-08-12
      • 2022-11-29
      • 2022-10-31
      • 2019-10-12
      • 1970-01-01
      • 2020-11-05
      • 2018-12-31
      相关资源
      最近更新 更多