Definir buildConfigField para androidTest

Estoy definiendo un campo en particular en BuildConfig para obtener la URL durante el tiempo de ejecución. Por lo tanto, para cada tipo de compilación, utilizo una cadena diferente:

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

¿Es posible definir una URL diferente mientras se ejecutan las pruebas de Android? He intentado poner esta configuración en sourceSets->androidTest , pero no es aceptada.

2 Solutions collect form web for “Definir buildConfigField para androidTest”

Agregue BuildConfig.java personalizado a your.app.package en test / androidTest dir.

Android Studio lo marca en rojo, pero funciona.

Tienes que pasarlo como un parámetro a la tarea connectedAndroidTest .

 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 } 

Luego pasar los parámetros a través de -P :

 ./gradlew connectedDebugAndroidTest -Pbase_url="xxx.com" ./gradlew connectedProdAndroidTest -Pbase_url="yyy.com" 
  • Android aar han dejado de construir con extractDebugAnnotations com / intellij / psi / PsiJavaFile android
  • Cómo evitar la generación automática de Android.mk con el nuevo gradle experimental Plugin
  • Muchos mensajes de error después de actualizar el complemento de Gradle para Android a 2.0.0
  • Actualización de Android Studio 2.2: alineado APK (zipAlign) no generado con el nuevo Gradle Plugin 2.2.0
  • Android Studio: Gradle Sync falla con soporte-v4-24.1.1.jar
  • El proyecto no se puede compilar después de actualizar a gradle: 2.1.0-alpha5
  • En Android Studio 2.1.3 ¿No funciona el gradle experimental?
  • Migración del proyecto a un nuevo complemento gradle experimental
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.