Android 测试 BuildConfig 字段
Android tests BuildConfig field
假设我的 build.gradle
文件为 BuildConfig
中定义的同一个变量定义了不同的值:
android {
def INTEGER= "integer"
def VARIABLE = "variable"
buildTypes {
release {
buildConfigField BOOLEAN, VARIABLE, "1"
}
debug {
buildConfigField BOOLEAN, VARIABLE, "2"
}
}
}
我想为 androidTest
(在 app/build/generated/source/buildConfig/androidTest/debug/{app_id}/test/BuildConfig.java
中创建的变量)定义此变量的 BuildConfig
值
现在,该值与 debug
闭包中的值相同。
Is it possible to change it?
我找到了一种方法here
创建另一个 buildType
(其名称不能以:test
开头)并将其名称传递给 属性:
android {
testBuildType "staging"
def INTEGER= "integer"
def VARIABLE = "variable"
buildTypes {
debug {
buildConfigField BOOLEAN, VARIABLE, "2"
}
staging {
initWith(buildTypes.debug)
buildConfigField BOOLEAN, VARIABLE, "4"
}
}
}
测试必须 运行 反对 staging
buildType
。
上述解决方案的 Kotlin DSL 等价物是:
android {
buildTypes {
create("local") {
initWith(buildTypes["debug"])
buildConfigField("Boolean", "IS_CI", "${System.getenv("CI") == "true"}")
isDebuggable = true
}
testBuildType = "local"
}
}
假设我的 build.gradle
文件为 BuildConfig
中定义的同一个变量定义了不同的值:
android {
def INTEGER= "integer"
def VARIABLE = "variable"
buildTypes {
release {
buildConfigField BOOLEAN, VARIABLE, "1"
}
debug {
buildConfigField BOOLEAN, VARIABLE, "2"
}
}
}
我想为 androidTest
(在 app/build/generated/source/buildConfig/androidTest/debug/{app_id}/test/BuildConfig.java
中创建的变量)定义此变量的 BuildConfig
值
现在,该值与 debug
闭包中的值相同。
Is it possible to change it?
我找到了一种方法here
创建另一个 buildType
(其名称不能以:test
开头)并将其名称传递给 属性:
android {
testBuildType "staging"
def INTEGER= "integer"
def VARIABLE = "variable"
buildTypes {
debug {
buildConfigField BOOLEAN, VARIABLE, "2"
}
staging {
initWith(buildTypes.debug)
buildConfigField BOOLEAN, VARIABLE, "4"
}
}
}
测试必须 运行 反对 staging
buildType
。
上述解决方案的 Kotlin DSL 等价物是:
android {
buildTypes {
create("local") {
initWith(buildTypes["debug"])
buildConfigField("Boolean", "IS_CI", "${System.getenv("CI") == "true"}")
isDebuggable = true
}
testBuildType = "local"
}
}