Может ли testBuildType быть условным в файле build.gradle проекта Android?

У меня есть 2 типа сборки моего приложения: отладка и выпуск.

Я хочу выполнить тесты на обоих типах сборки.

Но в настоящее время тестируется только один тип сборки. По умолчанию это тип сборки отладки, но его можно перенастроить с помощью: android { ... testBuildType "release" }

Я хочу выполнить connectedDebugAndroidTest и connectedReleaseAndroidTest как один за другим без изменения файла Gradle.

Можно ли сделать "testBuildType" условным? Таким образом, в соответствии с вариантом сборки в задаче gradle (connectedDebugAndroidTest и connectedReleaseAndroidTest) он выполнит тесты этой сборки.

1 ответ

Я не уверен, но это работает для меня. Если вы хотите выполнить код в соответствии с переменной здания (отладочной и выпущенной) в приложении, вы можете сделать это с помощью следующего кода.

Это для Java-файла Activity.

public void printMessage()
{
    if (BuildConfig.DEBUG)
    {
        //App is in debug mode
    }
    else
    {
        //App is released
    }
}

Если вы хотите проверить в build.gradle затем файл, следуя следующему коду.

Первый путь

buildTypes {
    debug {
      buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
    }

    release {
      buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
    }

    mezzanine.initWith(buildTypes.release)

    mezzanine {
        buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
    }
}

Второй способ

android {
    testBuildType obtainTestBuildType()
}

def obtainTestBuildType() {
    def result = "debug";

    if (project.hasProperty("testBuildType")) {
        result = project.getProperties().get("testBuildType")
    }

    result
}

Для получения подробной информации, пожалуйста, проверьте это, это и этот ответ stackru.

Я надеюсь, что вы получите свое решение.

Другие вопросы по тегам