Может ли 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.
Я надеюсь, что вы получите свое решение.