2014-02-21 68 views
28

我試圖創建一個Android項目Robolectric測試(哎呀,我很高興,甚至使他們的單元測試)如何讓Android Studio中識別文件作爲源(測試)

我有文件夾目錄爲:

MyApp 
    - app 
     - src 
      - main 
       - java 
        - com.myapp 
         HelloWorld 
      - test 
       - java 
        - com 
         - myapp 
          HelloWorldTest.java 

的問題是,HelloWorldTest.java無法運行,因爲它沒有被認定爲來源。我如何設置它,以便我可以運行這個類作爲測試?????

,如果我嘗試做CMD + SHIFT + T(快捷鍵創建測試),它會提示創建相同目錄下的測試,我的源文件,我不希望出現這種情況

回答

9

按照現有的準則在這裏:

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing

這裏

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Configuring-the-Structure

摘要:

作爲第一個鏈接說你必須重命名test目錄instrumentTest因此Studio可以自動檢測您的測試項目sourceSets

替代是你可以有您的tests目錄在根目錄(與您的主目錄)和來源方式如tests/java,因爲第二個鏈接說

instrumenttest.setRoot("tests") 
下Android的標籤

在sourceSets

配置從文件

注:setRoot()將在整個sourceSet(及其子文件夾)到 新的文件夾。這將移動src/instrumentTest/*進行測試/ *這是Android 的具體內容,不適用於Java源代碼集。

+0

感謝您的注意。我嘗試了第一種方式,但我仍然不斷獲得'!!!預計JUnit版本爲3.8或更高版本:'和'java.lang.RuntimeException:Stub!'。在stackoverflow上的大多數答案告訴我只是在項目模塊設置中向上移動JUnit,但是這並不能解決問題:/ –

+0

您可以在您的問題中包括「文件>項目結構> yourmodule> Dependencies'的截圖嗎? build.gradle文件? – pyus13

+0

對於Android Studio 1.0和更高版本,此更改 - 該文件夾現在稱爲androidTest。請參閱我的回答 –

29

在Android Studio 1.0中,該方案發生了一些變化。

你的路徑應該是(APP)/src/androidTest/java/com/myapp/HelloWorldTest.java

以下是我在一個新的Android Studio項目設置單元測試:

  • 開放Android Studio中的應用程序。
  • 設置項目瀏覽器(左側窗口)顯示'項目'模式。點擊左上方的小下拉菜單並選擇「項目」。
  • 右鍵單擊「src」目錄,「新建 - >目錄」。
  • 調用新的目錄androidTest
  • 右鍵單擊androidTest並添加一個'java'目錄。它將顯示爲綠色(表明它是一個測試src目錄)。
  • 現在再次右鍵單擊並添加一個包,例如com.mycompany.myapp.tests
  • 添加一個擴展了AndroidTestCase的新類。

現在添加一個新的配置來進行測試:

  • 編輯配置
  • 在頂部點擊+左鍵把
  • 選擇Android的測試
  • 在常規選項卡中選擇您的主模塊。
  • 點擊確定

現在您可以運行測試。

30

在Android Studio中1.3:

構建>選擇Build變

在構建變量窗口中,選擇單元測試作爲測試工件。

+0

這是一個什麼竅門,但它只是起作用。 – saiday

+0

一旦您選擇了構建變體,該文件夾就會作爲有效的源java文件夾「激活」。 –

0

我有類似的問題很長一段時間,最後我解決了這個問題。

爲了讓Android Studio能夠識別的src /測試目錄源你必須選擇在「構建變量」單元測試' - >「測試工件:」

然而,在我的項目我還沒有'單元測試'我只有'Android Instrumentation測試'。這是Android中的兩種不同類型的單元測試。

參見:http://developer.android.com/training/testing/unit-testing/index.html
1單元測試 - 本地單元測試
2. Android的儀表測試 - 儀表單元測試

這不是很明顯的所有,但裏面「構建變量」 - >「測試工件: '當您的項目中有多個模塊時,您沒有'單元測試'選項。

我的項目目錄是這樣的:
:項目
- :模塊1
- :模塊2
- :單詞數
- :單詞數
- :單詞數
-settings.gradle - >包括' :module1',':module2',...
這些模塊並沒有真正相互關聯,但它是來自Eclipse的許多其他開發人員的必備方式。這是一個問題。

然後創建單獨的項目只有我的模塊:
:項目
- :模塊1
-settings。gradle - > include':module1'

之後'單元測試'出現在'Build Variants' - >'Test Artifact:'中,我可以在Local Unit Tests和Android Instrumentation測試之間進行選擇。

相關問題