我在BuildConfig
中定义了一个特定字段,用于在运行时获取URL
。因此,对于每种构建类型,我使用不同的字符串:
prod {
buildConfigField "String", "BASE_URL", "\"abc.com\""
}
debug {
buildConfigField "String", "BASE_URL", "\"efg.com\""
}
运行Android测试时是否可以定义不同的URL?我尝试将此设置置于sourceSets->androidTest
下,但不接受。
答案 0 :(得分:2)
您必须将其作为参数传递给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
}
然后通过-P
传递参数:
./gradlew connectedDebugAndroidTest -Pbase_url="xxx.com"
./gradlew connectedProdAndroidTest -Pbase_url="yyy.com"
答案 1 :(得分:0)
在test / androidTest目录中向BuildConfig.java
添加自定义your.app.package
。
Android Studio标记为红色但有效。