2017-02-09 119 views
5

我有我的應用程序的2種構建類型:調試和發佈。「testBuildType」可以在Android項目的build.gradle文件中有條件嗎?

我想對兩種構建類型都執行測試。

但是目前只有一個Build Type被測試。默認情況下,它是調試版本類型,不過這可以通過重新配置: 的Android { ... testBuildType「釋放」 }

我想執行connectedDebugAndroidTestconnectedReleaseAndroidTest都無需逐一改變gradle文件。

是否有可能使「testBuildType」條件? 因此,根據在gradle任務(connectedDebugAndroidTest和connectedReleaseAndroidTest)中構建變體,它將對該構建執行測試。

+0

請檢查我的更新答案。 – Shailesh

回答

2

我不確定,但這是爲我工作。如果你想根據應用程序中的構建變量(調試和發佈)執行代碼,那麼你可以通過使用下面的代碼來完成。

這是用於Activity的java文件。

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 
} 

。詳細請thisthisthis計算器的答案。

我希望你能得到你的解決方案。

+0

hanks但我想檢查gradle文件,而不是在java代碼。我檢查了這個鏈接,但沒有用於這些gradle任務。 –

+0

感謝您的幫助。發現解決方案來自http://stackoverflow.com/questions/21754713/android-gradle-task-connectedinstrumenttest-for-release-build –

+0

其我的榮幸 – Shailesh

相關問題