12

我在运行时定义了一个特定的BuildConfig字段URL。因此,对于每种构建类型,我使用不同的字符串:

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

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

运行 android 测试时是否可以定义不同的 URL?我尝试将此设置置于 下sourceSets->androidTest,但不被接受。

4

2 回答 2

3

您必须将其作为参数传递给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"
于 2017-04-06T14:47:28.387 回答
0

在 test/androidTest 目录中BuildConfig.java添加自定义。your.app.package

Android Studio 将其标记为红色,但可以正常工作。

于 2016-10-05T16:55:16.003 回答