如何自动化 Flutter Integration 测试命令?
How to automate Flutter Integration testing command?
我已经阅读并尝试过使用 flutter 进行集成测试。我在这里遵循了本指南...
https://flutter.io/docs/cookbook/testing/integration
现在,对于 运行 集成测试,我必须输入以下命令:
flutter drive --target=test_driver/app.dart
我的问题是,有没有办法在 android studio 中自动执行此操作,这样我就不必手动输入命令。我宁愿只单击一个按钮并 运行 集成测试,而不是一遍又一遍地键入命令。
我是 flutter 的新手,所以任何建议都将不胜感激。提前致谢。
不确定您是否找到问题的答案,但我将在此处 post 解决方案。希望对你有帮助。
- 在 Android Studio 中,打开
run/edit configuration dialog
和 select Edit Configurations
,如下所示:
- 单击 + 按钮和 select
Dart Command Line App
配置。
- 为配置命名(例如:integration.dart)和select以下:
dart文件:集成测试的dart文件路径。 (例如:app_test.dart)
工作目录:项目的根路径。
环境变量:单击该字段最右侧的文件夹图标并创建新的环境变量,如下所示:
请注意,http
url 在您的情况下会有所不同。为了找出这一点,运行 终端中的 flutter 命令并注意控制台中显示的 observatory url
。就我而言,它在下面:
flutter: Observatory listening on http://127.0.0.1:51150/
将其替换为您的,然后单击“确定”。
正确完成上述步骤并运行 integration.dart
配置后,您应该能够运行 来自Android Studio 的命令并在IDE.
我正在使用 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
}
]
}
使用“Dart 命令行应用程序”为 flutter 驱动设置 运行 配置需要 VM_SERVICE_URL
环境。如果你想让 flutter drive 动态创建自己的 VM 实例,你可以在 Android Studio 中将 flutter drive
命令配置为 'External Tool',并将创建的外部工具配置为 运行 'Before launch'。注意'Program'上设置的路径指向Flutter SDK。
您可以查看此 GitHub thread 了解更多详情。
我已经阅读并尝试过使用 flutter 进行集成测试。我在这里遵循了本指南...
https://flutter.io/docs/cookbook/testing/integration
现在,对于 运行 集成测试,我必须输入以下命令:
flutter drive --target=test_driver/app.dart
我的问题是,有没有办法在 android studio 中自动执行此操作,这样我就不必手动输入命令。我宁愿只单击一个按钮并 运行 集成测试,而不是一遍又一遍地键入命令。
我是 flutter 的新手,所以任何建议都将不胜感激。提前致谢。
不确定您是否找到问题的答案,但我将在此处 post 解决方案。希望对你有帮助。
- 在 Android Studio 中,打开
run/edit configuration dialog
和 selectEdit Configurations
,如下所示:
- 单击 + 按钮和 select
Dart Command Line App
配置。
- 为配置命名(例如:integration.dart)和select以下:
dart文件:集成测试的dart文件路径。 (例如:app_test.dart)
工作目录:项目的根路径。
环境变量:单击该字段最右侧的文件夹图标并创建新的环境变量,如下所示:
请注意,http
url 在您的情况下会有所不同。为了找出这一点,运行 终端中的 flutter 命令并注意控制台中显示的 observatory url
。就我而言,它在下面:
flutter: Observatory listening on http://127.0.0.1:51150/
将其替换为您的,然后单击“确定”。
正确完成上述步骤并运行 integration.dart
配置后,您应该能够运行 来自Android Studio 的命令并在IDE.
我正在使用 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
}
]
}
使用“Dart 命令行应用程序”为 flutter 驱动设置 运行 配置需要 VM_SERVICE_URL
环境。如果你想让 flutter drive 动态创建自己的 VM 实例,你可以在 Android Studio 中将 flutter drive
命令配置为 'External Tool',并将创建的外部工具配置为 运行 'Before launch'。注意'Program'上设置的路径指向Flutter SDK。
您可以查看此 GitHub thread 了解更多详情。