Kri*_* CN 3 flutter flutter-integration-test
在为 flutter 应用程序创建集成测试时,如何dart-define通过 gradle 脚本传递变量。
从Flutter文档来看,为了构建一个仪器测试apk(然后将其上传到Firebase测试实验室并进行测试),我们需要直接使用gradlew这样的命令:
pushd android
flutter build apk
./gradlew app:assembleAndroidTest
./gradlew app:assembleDebug -Ptarget=integration_test/<name>_test.dart
popd
Run Code Online (Sandbox Code Playgroud)
这里没有指定如何将--dart-define我们正在使用的标志内容从 flutter 端传递flutter run到gradlew命令。
Flutterdart-define标志被编码为 base64,并作为带有参数 name 的逗号分隔字段传递给 gradle -Pdart-defines。所以我们可以利用它来手动传递dart-define变量
考虑一下你的 dart-define 标志是environment=staging
然后在正常的 flutter 运行中,您将像这样使用它。
flutter run --dart-define environment=staging
Run Code Online (Sandbox Code Playgroud)
要通过命令传递此信息gradlew,请将其转换为 Base64 编码的字符串并按如下所示传递。
Base64 编码的字符串environment=staging是ZW52aXJvbm1lbnQ9c3RhZ2luZw==
所以使用
./gradlew app:assembleDebug -Ptarget=integration_test/<name>_test.dart -Pdart-defines="ZW52aXJvbm1lbnQ9c3RhZ2luZw=="
Run Code Online (Sandbox Code Playgroud)
如果您有多个 dart 定义,请添加它们并用逗号分隔。(请注意,该标志是 -Pdart-defines - (定义s澄清了它))
./gradlew app:assembleDebug -Ptarget=integration_test/<name>_test.dart -Pdart-defines="ZW52aXJvbm1lbnQ9c3RhZ2luZw==,ZW1haWw9bXllbWFpbEBlbWFpbC5jb20="
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |