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"
  }
}