'Android tests BuildConfig field
Suppose my build.gradle
file defines different values for the same variable that is defined in BuildConfig
:
android {
def INTEGER= "integer"
def VARIABLE = "variable"
buildTypes {
release {
buildConfigField BOOLEAN, VARIABLE, "1"
}
debug {
buildConfigField BOOLEAN, VARIABLE, "2"
}
}
}
I would like to define BuildConfig
value for this variable for androidTest
(the one that is created in app/build/generated/source/buildConfig/androidTest/debug/{app_id}/test/BuildConfig.java
)
Now, the value is the same as in debug
closure.
Is it possible to change it?
Solution 1:[1]
I found a way to do this here
Create another buildType
(whose name must not start with: test
) and pass it's name to property:
android {
testBuildType "staging"
def INTEGER= "integer"
def VARIABLE = "variable"
buildTypes {
debug {
buildConfigField BOOLEAN, VARIABLE, "2"
}
staging {
initWith(buildTypes.debug)
buildConfigField BOOLEAN, VARIABLE, "4"
}
}
}
Tests must be run against staging
buildType
.
Solution 2:[2]
The Kotlin DSL equivalent of the above solution would be this:
android {
buildTypes {
create("local") {
initWith(buildTypes["debug"])
buildConfigField("Boolean", "IS_CI", "${System.getenv("CI") == "true"}")
isDebuggable = true
}
testBuildType = "local"
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | R. Zagórski |
Solution 2 |