为flutter应用创建集成测试时,如何通过gradle脚本传递dart-define
变量。
根据Flutter文档,为了构建一个工具测试apk(以及稍后将其上传到Firebase测试实验室并进行测试),我们需要直接使用gradlew
命令,如下所示:
pushd android
flutter build apk
./gradlew app:assembleAndroidTest
./gradlew app:assembleDebug -Ptarget=integration_test/<name>_test.dart
popd
此处未指定如何将我们正在使用的--dart-define
标志的内容从flutter端flutter run
传递到gradlew
命令。
1条答案
按热度按时间1zmg4dgp1#
flutter
dart-define
标记被编码为base64,并作为逗号分隔的字段传递给gradle,参数名为-Pdart-defines
。因此,我们可以利用它手动传递dart-define
变量假设您的dart-define标志为
environment=staging
然后在正常的Flutter运行中,你将这样使用它。
要通过
gradlew
命令传递此字符串,请将其转换为base64编码字符串,并按如下方式传递。environment=staging
的Base64编码字符串为ZW52aXJvbm1lbnQ9c3RhZ2luZw==
所以用
如果您有多个dart定义,添加它们时用逗号分隔。(注意标记是-Pdart-defines-(define
s
对此进行了说明))