2014-01-13 61 views
2

我正在轉向Gradle plugin for Android並重構了一些集成測試。其中的一些測試具有類似下面的代碼:外部化Android集成/功能測試配置

@Override 
protected void setUp() throws Exception { 
    super.setUp(); 
    _client = new Client("https://test02.server.com", "password"); 
} 

我要外部化的網址和密碼,以便他們可以從詹金斯建立驅動。我不完全確定如何去做這件事。測試將全部使用Gradle Android插件運行。

回答

2

那麼,我不能說詹金斯的一部分。

忽略詹金斯,這裏是Android的一對夫婦搖籃的方法:

  1. 把這些值在資源,如字符串資源,並有不同類型的不同構建類型對這些資源的替代版本的測試。你可以看到,在this sample project中,我有用於調試與發佈的不同版本的字符串資源,並且還有一個自定義的夾層構建類型。

  2. 將這些值放在BuildConfig中,爲不同類型的測試使用不同版本的替換版本。您可以看到在this sample project中擴展了前一個,其中通過buildConfigField指令在build.gradle文件中添加到BuildConfig。雖然在此示例中,該值在buildConfigField去是被硬編碼,他們可以通過環境變量,屬性文件等驅動

+0

我覺得第二個解決方案非常適合,因爲詹金斯將提供構建變量可以格雷格參考它在gradle build –

+0

我去了#2。工作很好。謝謝。 – Gregg

+1

@Gregg:僅供參考,與0.8.0版本的Gradle for Android插件一樣,您可以替換現有的BuildConfig值。在我鏈接的示例中,我現在創建'mezzanine'構建類型(從'release'克隆),然後爲'mezzanine'構建類型定義'SERVER_URL',然後爲'release'構建定義'SERVER_URL'類型。現在更簡單了:具有相同值的'BuildConfig'(例如'SERVER_URL')替換了早期版本。我對repo(和book)的下一次更新將顯示在'release'上定義'SERVER_URL',克隆'mezzanine',並在'mezzanine'中覆蓋原來的'SERVER_URL'。 – CommonsWare