如何自动化Flutter Integration测试命令?

时间:2018-11-18 14:01:34

标签: flutter integration-testing

我已阅读并尝试了Flutter的集成测试。我在这里遵循了本指南...

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

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

flutter drive --target=test_driver/app.dart

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

我对所有事物都是陌生的,因此任何建议将不胜感激。预先感谢。

3 个答案:

答案 0 :(得分:1)

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

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

enter image description here

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

enter image description here

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

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

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

环境变量:单击此字段中最右边的文件夹图标,然后创建新的环境变量,如下所示:

enter image description here

请注意,http的网址与您的情况不同。为了发现这一点,请在终端中运行flutter命令,并注意控制台中显示的observatory url。就我而言,它在下面:

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

用您的替换它,然后单击确定。

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

enter image description here

答案 1 :(得分:1)

我正在使用 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.jsontask.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
        }
    ]
}

答案 2 :(得分:0)

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

flutter drive External Tool config

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