Android测试BuildConfig字段

R. *_*ski 7 android gradle android-testing android-gradle-plugin

假设我的build.gradle文件为在以下位置定义的同一变量定义了不同的值BuildConfig:

android {
    def INTEGER= "integer"
    def VARIABLE = "variable"
    buildTypes {
        release {
            buildConfigField BOOLEAN, VARIABLE, "1"
        }

        debug {
            buildConfigField BOOLEAN, VARIABLE, "2"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想BuildConfig为这个变量定义值androidTest(创建的那个app/build/generated/source/buildConfig/androidTest/debug/{app_id}/test/BuildConfig.java)

现在,该值与debug闭包中的值相同.

是否有可能改变它?

R. *_*ski 12

我在这里找到了一种方法

创建另一个buildType(其名称不得以:开头test)并将其名称传递给property:

android {

    testBuildType "staging"

    def INTEGER= "integer"
    def VARIABLE = "variable"
    buildTypes {

        debug {
            buildConfigField BOOLEAN, VARIABLE, "2"
        }

        staging {
            initWith(buildTypes.debug)
            buildConfigField BOOLEAN, VARIABLE, "4"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

必须对抗测试staging buildType.