2010-07-19 106 views
17

有沒有一種方法可以通過一種方式來運行Eclipse中的Android單元測試,以檢測代碼並測量測試代碼覆蓋率?Android測試代碼覆蓋率,Eclipse

我正在尋找一種簡單的方法來找出我的應用程序的哪些部分尚未測試,修復測試用例並查看是否有幫助。

回答

2
+3

雖然這可能在理論上回答這個問題,[這將是首選le](http://meta.stackexchange.com/q/8259)在這裏包含答案的基本部分,並提供參考鏈接。 – 2012-01-20 11:42:14

+0

這個鏈接現在被打破。 – twiz 2014-04-05 00:53:37

+0

更新了鏈接 – avh 2014-04-05 19:36:24

8

免責聲明:我是一個Atlassian的

的Atlassian的三葉草工具還支持Android的 - 它測量應用程序代碼和單元測試的覆蓋率。雖然在alpha階段,它工作得很好 - 它適用於Eclipse 3.6.2及更高版本。

如果你想找到需要改進的應用領域,那麼下面的四葉草功能將是完美的完成這個任務:

  • 三葉草儀表板
  • 覆蓋雲報告
  • 覆蓋TreeMap的報告
  • 覆蓋瀏覽器

哦,三葉草HTML報告看起來fantasti C!

檢查:https://confluence.atlassian.com/display/CLOVER/Clover-for-Android

2

在Eclipse Marketplace安裝EclEmma

如果你有<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/

3

我一直在使用EMMA(機器人已經支持它)的代碼覆蓋率(和android-junit-report測試報告),這裏是一個總結:

  • 創建Android項目(或庫)

android.bat更新項目-p項目-n MY_PROJECT -t Android的16

CD項目

螞蟻艾瑪乾淨調試

  • 創建一個測試項目(與以前的庫)

android.bat更新項目--library .. \ project -p project_Test -n project_Test -t

    萬一
  • 的主要項目是不是圖書館

android.bat更新項目-m .. \項目 -p project_Test -n project_Test -t

螞蟻emma清除調試安裝 因爲我想運行我自己的儀器,所以我沒有使用「測試」

亞行外殼上午儀器-e覆蓋真正-e coverageFile SD卡/ coverage.ec -w com..myproject.test/com.zutubi.android.junitreport.JUnitReportTestRunner

  • 拉從設備文件(仿真器)

ADB拉SD卡/的junit-report.xml將

ADB拉SD卡/ coverage.ec

  • 生成XML報告(也可以生成HTML報告)

java命令emma.jar艾瑪報告-r XML -in斌/coverage.em,coverage。EC

  • 生成HTML 報告(也可以生成HTML報告)

java命令emma.jar艾瑪報告-r HTML -in斌/ coverage.em,覆蓋。 EC

  • 使用後構建(詹金斯):

    • JUnit的報告XML
    • 愛瑪覆蓋率報告(給coverage.xml輸入)

不要需要emma.jar到庫

檢查它從我的blog