歡迎訪問我的博客:www.dzwanli.com.cn?
本文為參考博客http://clasnake.net/emma_for_android/,并且稍作修正碍讨,主要實現(xiàn)了對于android app如果通過emma實現(xiàn)黑盒手工測試的代碼覆蓋率治力?本文采用的是Snake demo project蒙秒,整個工程可以到百度網(wǎng)盤中下載(鏈接:http://pan.baidu.com/s/1jiYQi密碼: wvbu)勃黍。
該方法的原理是使用插樁與BroadcastReceiver,使得插樁后打包簽名而成的APK運行時每次操作均發(fā)送信息給BroadcastReceiver晕讲,BroadcastReceiver中負責(zé)將覆蓋率信息寫到SD卡的名為coverage.ec的文件中覆获。本文app package為com.example.android.snake马澈,假設(shè)工程文件位置為C:\Workspace\Snake。
一弄息、插樁
1)首先下載EmmaInstrument.rar痊班,解壓后包含四個文件(下載鏈接:http://pan.baidu.com/s/1jiYQi密碼: wvbu)。
2)Eclipse中打開Snake工程摹量,src下面新建一個package為com.example.android.snake.EmmaInstrument涤伐。
3)將step1的四個文件拷貝到C:\Workspace\Snake\src\com\example\android\snake\EmmaInstrument下。
4)修改這四個文件的包名:package com.example.android.snake.EmmaInstrument;
5)修改InstrumentedActivity.java文件:
@SuppressLint("NewApi")
public class InstrumentedActivity extends Snake {
6)修改AndroidManifest.xml缨称,其中??comment中間的部分是新加的代碼凝果。
二、重編譯睦尽、安裝
1)啟動模擬器器净;
2)打開cmd窗口:
cd C:\Workspace
android update Snake (更新項目)
cd Snake
ant instrument (編譯插樁版本)
ant installi? (安裝,你可以在模擬器中看到Snake app)
三当凡、啟動應(yīng)用山害、測試、獲得代碼覆蓋率報告
1)cd C:\adt\sdk\platform-tools? (進入到adb工具的文件夾下沿量,當然如果已經(jīng)在環(huán)境變量中添加了就不需要該步驟了)
adb shell am instrument com.example.android.snake/com.example.android.snake.EmmaInstrument.EmmaInstrumentation (啟動插樁版本)
你可以看到模擬器中Snake app已經(jīng)啟動了浪慌。
2)手動執(zhí)行測試用例。
3)從設(shè)備中獲得coverage.ec: adb pull /mnt/sdcard/coverage.ec朴则。
由于你當前位置是platform-tools文件夾眷射,因此可以在platform-tools下看到coverage.ec。
4)C:\Workspace\Snake\bin下可以找到coverage.em文件佛掖。
5)將coverage.em和coverage.ec拷貝到 C:\EmmaResult下(文件夾任意)妖碉。
6)cd C:\EmmaResult
java -cp? C:/adt/sdk/tools/lib/emma.jar?emma report -r html -in coverage.em,coverage.ec (注意如果你的sdk安裝位置不同,前面的地址要更改芥被。)
7)打開C:\EmmaResult\coverage\index.html欧宜,即可看到代碼覆蓋率結(jié)果: