2011-06-06 224 views
24

可能重複:
Android test code coverage, Eclipse代碼覆蓋率爲Android

它真的令人沮喪,看看有如何使用EMMA在Eclipse中Android應用的文檔。有沒有人設法在eclipse中與EMMA一起使用Android應用程序?沒有檢查出整個android源代碼,並做所有的hackery?

+1

我把它安裝Eclipse之外,但耶作爲Eclipse中的APK建設步驟中集成它,我想你可能必須使用ADT LIB是android系統的源代碼樹: (我還沒有找到辦法做到這一點,但是我沒有發現通過IDE進行交互式覆蓋與使用覆蓋率分析來運行自動化測試(這是可跟蹤的)有幫助。我通過螞蟻來做到這一點。如果它在這裏有所幫助,http://stackoverflow.com/questions/4073681/is-it-possible-to-simply-compile-an-emma-instrumented-apk-using-android-build-xml – 2011-06-17 08:09:25

回答

2

如果你有<path to test project>/build.xml文件重命名。

我能夠通過執行從控制檯下面生成測試覆蓋率報告:

<path to android tools>android update test-project -m <path to app project> -p <path to test project> + 輸入

cd <path to test project> + 輸入

ant emma debug install test + 輸入

其中<path to android tools>/opt/android-sdk-linux/tools/在我的機器上 - 安裝SDK SDK的文件夾。

這生成了<path to test project>/bin/coverage.html文件。

如果你得到「錯誤JAVA_HOME」錯誤執行gksu gedit /etc/environment + 輸入,正確JAVA_HOME,保存文件,註銷或重新啓動,然後再試一次。

來源:http://blog.rabidgremlin.com/2010/11/19/android-tips-generating-a-coverage-report-for-your-unit-tests/

1

不幸的是,我相信EMMA不適用於通過SDK開發的應用程序。這是自從我上次閱讀這個主題以來事情沒有改變。這些工具是爲了與操作系統本身一起使用而設計的,因此,我無法將它與您所知道的APK一起使用。

您可能會發現以下相關帖子有用 - EMMA Code Coverage in Android

2

這並不直接回答你的問題,但我建議你看一看與Robolectric編寫測試:http://pivotal.github.com/robolectric/

隨着Robolectric,你可以寫你的測試裏面JVM而不是Delvik VM上運行。這意味着你幾乎可以使用任何代碼覆蓋工具來使用JAVA。你可能需要稍微改變一下你的代碼,這樣你才能寫出你的Robolectric,並且你也沒有開始對Robolectric進行黑客攻擊。對我來說,這只是寫測試的一種更好的方法。