2013-06-03 48 views
8

所有使用Robolectric的例子我都可以找到似乎是基於Maven的。有人沒有使用Maven嗎?如果是這樣,我真的很想了解你的IntelliJ項目設置。有沒有人在IntelliJ上使用沒有Maven的Robolectric?

讀完這篇文章

android-unit-test-approaches

它似乎是合理有一種分層的方法來單位testig純的JUnit,robolectric &的Android測試框架的測試的組合機器人項目。如果有人正在使用或不使用Maven,我想了解一些關於如何在IntelliJ中配置項目的信息。

我猜我需要多個項目/模塊。任何智慧都會受到感謝。

回答

6

Maven是一個讓事情更方便的好工具。如果你還在尋找的IntelliJ內安裝Robolectric無Maven的方式,跟着:

  1. 下載Robolectric: https://oss.sonatype.org/index.html#nexus-search;quick~robolectric 下載最新的JAR-與-dependencies.jar文件。 下載它,並把它放在你的應用程序項目的庫/目錄

  2. 設置你的應用程序源具有以下文件結構 (這是設置你的目錄彌補Robolectric測試的廣泛使用的方法)

    ProjectName/ 
        src/ 
         main/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaClassesHere.java 
         test/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaTestClassesHere.java 
    
  3. 在Intellij中,轉到文件>項目結構。然後在左欄中選擇「模塊」。
    在中間一列中,選擇您的應用程序模塊。
    然後在右欄中點擊「來源」選項卡。
    現在在文件瀏覽器中找到「src」目錄並展開它。然後展開src中的「主」和「測試」目錄 。點擊「main」下的「java」目錄,然後點擊頂部的 藍色「Sources」按鈕。然後對於「測試」下的「java」目錄,朝頂部點擊 「測試源」按鈕。
    另外,單擊主「src」目錄並DE選擇藍色來源按鈕,使其不再藍。

  4. 現在仍然在項目結構窗口中,轉到左側欄並單擊「庫」。
    如果您已在中間欄中看到robolectric的條目,請點擊它,然後單擊中間欄頂部的紅色「 - 」 標誌。
    現在單擊中間列上方的綠色「+」號,然後選擇「Java」。瀏覽到您在步驟1中下載的 robolectric jar。(應該在您的項目的libs /目錄中。
    現在會出現一個窗口,詢問您要使用robolectric的模塊。選擇全部 將使用robolectric,然後點擊確定。現在點擊應用和確定擺脫項目結構的 。

現在都設置了與robolectric測試!

+0

Maven是一個用於移動開發的過於複雜的工具。這對於服務器端開發可能非常有用,但對於簡單的移動應用程序開發並不適用。 Ant可以發揮出最好的效果,並通過Android SDK提供支持。 – Sileria

+1

@Mobistry我有相反的經歷。 Maven(與Nexus一起)極大地幫助了我的團隊。依賴管理對於任何軟件項目都很重要,特別是當它開始變得複雜時。 –

+0

有沒有任何方法可以在沒有** Maven的情況下在Eclipse(Juno)**上運行Robolectric測試?我在robolectric網站上的快速入門步驟一直沒有任何運氣。 – JaKXz

3

我在猜測,大多數人使用Roboelectric的原因都是使用Maven,因爲大多數懶得使用Roboelectric的人都對他們的測試很認真。

考慮到他們有動力將大量精力投入到測試中,他們很可能希望能夠將自己的測試包含在自動化構建中,通常在持續集成(CI)服務器中,例如Jenkins或哈德森。

當你想做自動化測試時,你需要一個很好的命令行構建。 Gradle是全新的Android官方命令行構建工具,但是全新的,仍然是一項正在進行中的工作,尚未被廣泛採用。經過驗證的工具是Maven。

很多人都喜歡討厭Maven,但它完成了工作,並且擊敗了Ant一英里。

因此,使用Maven(或Gradle)可能不是一個壞主意 - 它會爲您的測試提供更多的便利,而不僅僅是在IDE中運行測試。

+0

謝謝你。我確實想爲我的項目設置CI,並且您現在已經幫助我解決了Maven的問題。我一直在聽一個Maven的貶低者,他非常合理地將構建時間長和複雜的依賴性問題作爲不使用它的原因。儘管我並不擅長構建Java,但似乎Maven最終可能會被迫做你想做的事情。 –

+0

對於長時間的構建和複雜的依賴性問題,Maven並不是完全錯誤 - 選擇使用複雜的相互依賴庫的網絡的軟件開發人員對此負有責任。 Maven只是一個可以用來管理這些依賴關係的工具。但是,Maven會討厭......無論如何,新的Gradle構建工具將能夠管理這些相同的依賴關係,並希望能夠做得更好。 – GreyBeardedGeek

2

我是早起的鳥兒Robolectric的天空,並開始不採取Maven的方式,我的主要動機是嘗試框架,因此neve r再次考慮使用Maven。 我已記錄在我的學習:
http://dasherize.blogspot.in/2013/04/robolectric-beginning.html
並且您可以找到設置說明here

注:它是關於Robolectric 1.x.但它不應該隨着版本的變化而變化很大。

至於this answer我完全同意@GreyBeardedGeek。如果你想設置CI,你必須和Maven安家。