EMMA是一个Java代码测试覆盖率获取工具。尝试了一种使用EMMA获取Android测试覆盖率的方法,参考使用了
DynoDroid提供的方法,其原理是使用插桩与BroadcastReceiver
,使得插桩后打包签名而成的APK运行时每次操作均发送信息给BroadcastReceiver
,BroadcastReceiver
中负责将覆盖率信息写到SD卡的名为coverage.ec
的文件中。其一大优点为全程无需修改原APK的源码。
Pre
假定APK所在包为net.clasnake.project
,工程主目录为/folder
。
Step 1 插桩
首先下载EmmaInstrument.rar,解压后包含四个文件:
EmmaInsrumentation.java
FinishListener.java
InstrumentedActivity.java
SMSInstrumentedReceiver.java
将文件夹EmmaInstrument复制到/folder/src下。
将上述四个java文件的包名修改为net.clasnake.project.EmmaInstrument
,并令InstrumentedA