2014-06-24 57 views
7

最新消息: Android Studio 1.1.0現在內置了對單元測試的支持。查看更多在這裏:https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-supportAndroid Studio 0.8中的單元測試

起初,我知道有非常,非常,非常類似的問題(即便是在這裏SO)。他們中的大多數都非常過時,所以我要問一個新的問題,應該是Android Studio 0.8.x的最新版本。

我知道有一些圖書館以某種方式工作,但在幾乎每種情況下,我都沒有證據表明信息是最新的。我知道有例如roboelectric,也有一些不贊成的傑克沃頓像gradle-android-test-plugindouble-espresso,我也發現圖書館RoboSpockDeckard。但他們都沒有任何Android Studio集成。

長的研製後,我發現這兩個錯誤在所有實現:

  • 類路徑被破壞,需要被黑客攻擊獲得的JUnit運行
  • JUnit測試不能被調試

我在尋找什麼:

  • 我想自動測試一個算法(這是普通Java)
  • 我要檢查的集成在我的Android應用程序的工作原理
  • 我想在Android Studio中的集成,這樣我可以跳進碼出堆棧跟蹤的
  • 我想一步thrue測試代碼

我還發現某處一個很好的破解這gradle這個作爲外部任務運行的測試,並將結果推到AS,這樣的結果可以被顯示,但不幸的是,我不能再次找到該鏈接(如果我記得正確它也沒有爲我工作)。

你們有一些新鮮的參考嗎?對你起作用嗎?

回答

2

您必須編輯Android Studio生成的.iml文件,以指向您的測試類目錄,並修復Junit中的Stub錯誤。目前沒有解決這個問題的方法。

Gradlectric是一個使用Robolectric Gradle Plugin在Android Studio中運行單元測試的示例。

+0

我試圖在你的項目中實現它,但是我總是以*類未找到的方式結束:「com.example.test.FirstTest 「*錯誤。 – rekire

+0

那麼我使用[此修復](https://github.com/nenick/android-gradle-template/wiki/Tests-in-Android-Studio---IntellJ)現在它的工作。 – rekire

+0

感謝您的鏈接,我更新了我的回購以包含缺少的步驟。 –

0

This我的項目不包括全部你的要求,但它們的公平很多。它涵蓋了默認的Java測試用例,以及一些與Views交互的測試。

根項目使用Travis CI,它使用gradle connectedCheck來運行測試。爲了能夠調試測試,您可以在AS中創建一個測試運行配置並在調試模式下運行它。

請注意,這不使用任何特殊的Android測試框架,如robolectric。

+0

因爲您引用的文件似乎不在版本控制中,所以很難理解項目gradle文件。結果出現在哪裏(如果出現錯誤)就像構建目錄中的html/xml文件一樣? – rekire

+0

一切都在版本控制中。您可能必須導航到根目錄,因爲整個項目由多個模塊組成。這個模塊有一些測試。 'apply from:...'使用的gradle文件與單元測試沒有任何關係。 使用gradle命令時,結果將顯示爲html/xml,當在AS中運行測試配置時,您將在AS GUI中獲得很好的輸出。 – nhaarman

+0

我需要檢查一下。當我完成時,我會留下另一條評論。 (這可能需要一些時間,我現在正在修補其他東西) – rekire

0

你可以找到Jake Wharton的gradle-android-test-plugin here的分支。這與AS 0.6兼容,並由Robolectric定期維護。藉助此插件,您可以查看this project以在Android Studio中設置Robolectric。在robolectric-gradle-plugin的幫助下,你可以實現你提到的一些功能。您也可以使用AS成功調試測試代碼。

+0

嗯,我有一個Deckard(項目)的大問題,我想擴展一個現有的項目。這在他們的頁面上根本沒有解釋。這個maven插件的問題是,我甚至沒有安裝maven,甚至沒有聽說過'brew'。你能指導我嗎? – rekire

+0

你正在使用什麼操作系統?此外,只要您使用的是Android Studio項目,對於新項目或現有項目而言,該過程非常相似。按照這裏給出的說明 - https://github.com/robolectric/robolectric-gradle-plugin – Shubham

1

在這裏,你會錯過一個示例項目設置https://github.com/nenick/android-gradle-template

但他們都不似乎有任何Android Studio集成。

這個項目保持爲Android工作室

類路徑被破壞,需要被黑客攻擊獲得的JUnit運行

gradle這個腳本將修復類路徑

junit測試不能被調試

測試AS內部的一個運行,因此它們很容易調試

+0

我用接受的答案與你的答案混合在一起。不過,我只能接受一個答案,所以你有一個+1。 – rekire