2016-09-14 38 views
1

我在Android Studio的AndroidTests目錄下有一些安裝了Android的測試工具。當然,我可以手動執行測試,但是我需要在每次構建之後執行套件中的所有測試(「發佈」類型的構建,而不是在正常的調試構建過程中)。我需要這樣做,因爲我想在發佈新應用的apk之前驗證新代碼對測試。怎麼做?我谷歌它,但我沒有找到一個合適的解決方案呢。如何在每次「發佈」構建之前使用gradle執行Android測試?

有什麼想法?

回答

4

最後我設法做到了。我已經添加了以下配置我的build.gradle文件在我的Android Studio項目:

// execute android tests before realising a new apk 
tasks.whenTaskAdded { task -> 
    if (task.name == 'assembleRelease') 
     task.dependsOn('connectedAndroidTest') 
} 

android { 
signingConfigs { 
    release { 
     keyAlias 'key' 
     keyPassword 'password' 
     storeFile file('/path/to/release_keystore.jks') 
     storePassword 'password' 
    } 

} 
buildTypes { 
    debug { 
     signingConfig signingConfigs.release 
    } 
    release { 
     signingConfig signingConfigs.release 
    } 
} 

這樣做,我可以建立一個發佈APK時運行所有Android測試後。如果測試失敗,則不會構建apk。

0

我想你應該潛入一個特定的主題:Continuous Integration

這將允許您在每次構建或提交之後運行測試套件,構建變體,在Google Play上發佈以及更多...從經典Jenkins CI開始,這可能不是最精緻和易於使用的,我的意思是用戶友好的工具,但與TravisCircle CI相比,它提供了巨大的配置可能性,良好的應用程序社區和免費使用。

開始這篇文章:http://www.vogella.com/tutorials/Jenkins/article.html

其他工具:我已經使用TravisGithub項目,但Circle CIGreen House CI可能也是不錯的選擇。

希望這將有助於

+0

是的你是對的,但我現在不需要,因爲我只是開發一個簡單的應用程序。我現在不需要CI,我只是一個獨立開發者。無論如何感謝參考,但我正在尋找不同的東西,我想我問的東西應該有一個簡單的答案,但也許不是。 :-) – Daniele

+0

詹金斯是一個偉大的開源工具,如果你願意改變一份工作,那麼他的技能很棒。我已經是特拉維斯用於我的非常小的項目,檢查我的github,尼克是一樣的我的用戶名 – piotrek1543

2

一般來說,你可以定義一個依賴使用dependsOn法的任務。

例如:

task A << { 
    println 'Hello from A' 
} 

task B << { 
    println 'Hello from B' 
} 

B.dependsOn A 

您將獲得

> gradle -q B 
Hello from A 
Hello from B 

在你的情況,你可以指定:

assemble.dependsOn test 

如果您想僅指定發佈的依賴打造:

assembleRelease.dependsOn test 

使用:

connectedAndroidTest上運行連接的仿真器或裝置中的測試。
test在本地主機上運行單元測試。

+0

yeahh我認爲這樣的東西,但什麼是「測試」?不被gradle識別。我需要在某處指定它嗎? – Daniele

+0

@Daniele使用試驗運行單元測試或connectedAndroidTest運行機器人測試 –

+0

確定我加入此:tasks.whenTaskAdded {任務 - > 如果(task.name ==「assembleRelease」) task.dependsOn(「connectedAndroidTest」 ) }現在它似乎工作,但問題是沒有測試執行死於簽名證書問題。問題是connectedAndroidTest針對「構建」類型而不是「發佈」類型的構建運行測試。在這裏找到更多的信息:http://stackoverflow.com/questions/23923218/android-gradle-running-tests-on-non-debug-builds。不清楚現在該做什麼。 – Daniele

相關問題