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