2013-02-11 35 views
2

在Android LunarLander示例項目中,單元測試包含在項目中,名爲'tests'的(非源代碼)文件夾中。這與推薦此佈局的SDK測試指南相對,而不是在單獨的項目中創建測試。但是,我不知道如何才能真正運行這些測試。Android單元測試 - 如何在與應用程序相同的項目中運行測試?

我不能創建一個Android JUnit測試運行配置:

  • ,如果我嘗試「跑項目或包中的所有測試」就抱怨說,清單文件中不包含儀表信息 - 顯然它使用頂級清單文件而不是測試清單文件。
  • 如果我嘗試'運行單個測試',我找不到任何因爲測試不是源文件夾,並且如果我將它設置爲源文件夾,錯誤彈出,因爲它假定測試類應該以'tests.src'開頭。

在我看來,這個樣本已經破裂了......我希望我錯了,因爲我寧願將測試嵌入到我的項目中,並且能夠輕鬆地運行它們(而不是創建單獨的測試項目鏈接到測試應用程序項目)。有人知道我可以如何運行這些測試嗎?謝謝...

+0

你說的是使用Eclipse,對吧? – yorkw 2013-02-14 09:19:21

回答

1

谷歌推薦一個單一的all-in-one目錄,因爲它使得你的文件很容易在許多情況下維護,例如在處理源代碼控制時。

不要緊,其中測試項目位於INT文件系統,但是,你必須將其導入到Eclipse的工作空間,一樣的,你做了什麼的LunarLander項目:

enter image description here

如果一切順利的話,你的包瀏覽器應該是這個樣子:

enter image description here

在我的Android 4.2的樣品,事情進展不順利,好像是個LunarLander測試項目的源代碼不是最新的:

  1. 它沒有帶有project.properties文件。
  2. 它使用與LunarLander項目相同的軟件包名稱,導致Eclipse在從引用的LunarLander項目中導入軟件包/類時被愚弄。
  3. 它不會自動將LunarLander項目添加到測試項目的類路徑中,從而引用的LunarLander項目導致的導入的包/類不可見。

解決所有問題後,您應該能夠從測試項目運行/調試Android JUnit Test。

+0

我知道我可以爲我的測試創建第二個項目,並且我很容易就能做到這一點。但那不是我想要做的;我的問題是關於在同一個項目中進行測試,這是我(和大多數人?)如何構建vanilla Java項目的方式。在你的照片中注意,LunarLander項目有一個包含與其他測試項目相同的文件的「測試」文件夾。你如何在LunarLander的'測試'中運行測試? – noobler 2013-02-16 20:19:47

+0

google的意思是([see here](http://developer.android.com/tools/testing/testing_android.html#TestProjects))關於「在同一個項目中進行測試」純屬於文件系統級別,即你應該如何組織你的項目的文件夾/文件在你的硬盤上。當進入Eclipse時,測試項目必須在邏輯上導入並在Eclipse的Package Explorer中形成爲一個單獨的項目。子文件夾測試具有自己的項目描述結構,並且在導入LunarLander項目時僅顯示爲具有原始文件的普通文件夾。這就是ADT的設計和應用方式。 – yorkw 2013-02-16 23:15:20

+0

當玩樣品時,我通常使用的是文件 - >導入... - > Android - >現有的Android代碼導入到工作區中 - 導入項目(更好地處理樣本副本,因爲這會更改原始樣本文件在sdk/samples文件夾下)。請注意,這將分析和檢測所有子項目(如果它們格式正確)並一次性導入到Eclipse中。但是,它們仍然顯示爲Package Explorer中的兩個項目。請記住,Package Explorer只是您在文件系統上投影的邏輯視圖。您必須從測試項目運行/調試您的測試。 – yorkw 2013-02-16 23:37:13

相關問題