【问题标题】:How to automate Flutter Integration testing command?如何自动化 Flutter 集成测试命令?
【发布时间】:2019-04-21 01:12:50
【问题描述】:

我已经阅读并尝试过使用 Flutter 进行集成测试。我在这里按照本指南...

https://flutter.io/docs/cookbook/testing/integration

现在,要运行集成测试,我必须输入以下命令:

flutter drive --target=test_driver/app.dart

我的问题是,有没有办法在 android studio 中自动执行此操作,所以我不必手动输入命令。我宁愿只单击一个按钮并运行集成测试,也不愿一遍又一遍地键入命令。

我是新来的,所以任何建议都会非常感激。提前致谢。

【问题讨论】:

    标签: flutter integration-testing


    【解决方案1】:

    不确定您是否找到了问题的答案,但我将在此处发布解决方案。希望对您有所帮助。

    1. 在 Android Studio 中,打开run/edit configuration dialog 并选择Edit Configurations,如下所示:

    1. 点击+按钮,选择Dart Command Line App配置。

    1. 为配置命名(例如:integration.dart)并选择以下内容:

    Dart 文件:有集成测试的 dart 文件的路径。 (例如:app_test.dart)

    工作目录:项目的根路径。

    环境变量:点击该区域最右边的文件夹图标,新建环境变量如下:

    请注意,http 网址在您的情况下会有所不同。为了找出答案,在终端中运行颤振命令并注意控制台中显示的observatory url。就我而言,它在下面:

    flutter: Observatory listening on http://127.0.0.1:51150/

    将其替换为您的,然后单击“确定”。

    正确完成上述步骤并运行integration.dart 配置后,您应该能够从 Android Studio 运行命令并在 IDE 中查看结果。

    【讨论】:

    • 不错的~谢谢! :D
    • 我尝试了这个解决方案,但我收到了以下错误:VMServiceFlutterDriver:连接到 VM 需要很长时间。拜托,有人可以给一些提示如何解决这个问题?
    【解决方案2】:

    我正在使用Visual Studio,并且我创建了一个脚本文件integration_test.sh。

    flutter drive \
      --driver=test_driver/integration_test.dart \
      --target=integration_test/login_test.dart
    
    flutter drive \
      --driver=test_driver/integration_test.dart \
      --target=integration_test/register_test.dart
    
    ..
    

    执行测试。我只是运行bash scripts/integration_test.sh

    我也在尝试添加launch.json 和task.json 仍然无法弄清楚。一旦一切正常,我会更新答案。

    launch.json 的代码

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Flutter Dev",
                "program": "lib/main_dev.dart",
                "request": "launch",
                "type": "dart"
            },
    
            ...
    
            {
                "name": "Flutter Integration Test",
                "preLaunchTask": "IntegrationTest",
            }
        ]
    }
    

    task.json 的代码

    {
        "version": "0.2.0",
        "tasks":[
            {
                "taskName": "IntegrationTest",
                "command": "scripts/integration_test.sh",
                "isShellCommand": true
            }
        ]
    }
    

    【讨论】:

      【解决方案3】:

      使用“Dart 命令行应用程序”为颤振驱动器设置运行配置需要VM_SERVICE_URL 环境。如果您想让flutter驱动动态创建自己的VM实例,您可以在Android Studio中将flutter drive命令配置为“External Tool”,并将创建的External Tool配置为“Before launch”运行。请注意,“Program”上设置的路径指向 Flutter SDK。

      您可以查看GitHub thread了解更多详情。

      【讨论】:

        猜你喜欢
        • 2022-11-16
        • 2010-10-05
        • 2020-03-18
        • 2020-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-08
        • 1970-01-01
        相关资源
        最近更新 更多