Определить buildConfigField для androidTest

Я определяю конкретное поле в BuildConfig для получения URL во время выполнения. Таким образом, для каждого типа сборки я использую другую строку:

  prod { buildConfigField "String", "BASE_URL", "\"abc.com\"" } debug { buildConfigField "String", "BASE_URL", "\"efg.com\"" } 

Можно ли определить другой URL-адрес при запуске тестов на Android? Я попытался установить этот параметр в sourceSets->androidTest , но он не принят.

Solutions Collecting From Web of "Определить buildConfigField для androidTest"

Добавьте пользовательский BuildConfig.java в your.app.package BuildConfig.java в your.app.package test / androidTest.

Android Studio отмечает его красным, но работает.

Вы должны передать его как параметр для connectedAndroidTest задачиAndroidTest.

 android { ... buildTypes { prod { buildConfigField "String", "BASE_URL", "\"${getBaseUrl("abc.com")}\"" } debug { buildConfigField "String", "BASE_URL", "\"${getBaseUrl("efg.com")}\"" } } } def getBaseUrl(String fallback) { return project.hasProperty("base_url") ? project.getProperties().get("base_url") : fallback } 

Затем прохождение параметров через -P :

 ./gradlew connectedDebugAndroidTest -Pbase_url="xxx.com" ./gradlew connectedProdAndroidTest -Pbase_url="yyy.com"