2017-02-09 34 views
5

Mam 2 typy kompilacji mojej aplikacji: debugowanie i wydanie.Czy "testBuildType" może być warunkowe w pliku build.gradle projektu Android?

Chcę wykonać testy na obu typach kompilacji.

Ale obecnie testowany jest tylko jeden typ konstrukcji. Domyślnie jest to typ debugowania, ale może to być skonfigurowane z: android { ... testBuildType „uwalniania” }

Chcę wykonać connectedDebugAndroidTest i connectedReleaseAndroidTest zarówno pojedynczo bez zmieniając plik gradle.

Czy jest możliwe ustawienie warunku "testBuildType"? Tak, że zgodnie z wariantem budowy w gradle task (connectedDebugAndroidTest i connectedReleaseAndroidTest), wykona testy tej kompilacji.

+0

Proszę sprawdzić moją zaktualizowaną odpowiedź. – Shailesh

Odpowiedz

2

Nie jestem pewien, ale to działa dla mnie. Jeśli chcesz wykonać kod zgodnie ze zmienną budynku (debugowanie i zwolnione) w aplikacji, możesz to zrobić za pomocą następującego kodu.

Jest to plik aktywności java.

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

Jeśli chcesz sprawdzić w build.gradle pliku następnie zrobić wykonując kod.

Pierwszy sposób

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

Drugi sposób

android { 
    testBuildType obtainTestBuildType() 
} 

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

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

    result 
} 

Dla szczegółów prosimy sprawdzić this, this i this stackoverflow odpowiedź.

Mam nadzieję, że dostaniesz swoje rozwiązanie.

+0

hanks, ale chcę sprawdzić w pliku gradle, nie w kodzie java. Sprawdziłem ten link, ale nie pracował dla tych zadań gradle. –

+0

Dzięki za pomoc. Znalezione rozwiązanie z http://stackoverflow.com/questions/21754713/android-gradle-task-connectedinstrumenttest-for-release-build –

+0

to moja przyjemność – Shailesh