折腾了小半天,最后其实很简单
使用Android自带的ApiDemos作为例子
测试环境:windows
1. 进入到ApiDemos目录下
cd <Android SDK>\samples\android-15\ApiDemos
2. 更新build.xml
android update project -p ./ --target android-15
cd tests
android update test-project -m <Android SDK>\samples\android-15\ApiDemos -p ./
windows下,对于被测项目,必须使用绝对路径,bug~~~
3. 运行测试及获得统计结果
ant clean emma debug install test
注意:一定要使用clean,不然各种问题,总之就是无法获得emma的结果
你会发现有三种颜色,绿色,红色和黄色,它们分别表示该行:被测试到,未被测试到,以及部分被测试到。红色或黄色的部分是需要引起你注意的,bug 也许就隐藏在这部分代码中,你所需做的就是设计一些测试用例,使它们运行以前未被执行到的语句。你需要相应的增加一些测试用例。运行新加的测试用例,你也许会发现一些新的 bug,并修正这些 bug。
EMMA 的功能是有限的,它不支持决策覆盖和路径覆盖。
if (number.equals("") || null == number) {
//若传进的number 为 null 的话,并不是如我们所愿,得到 IllegalArgumentException,而是抛出了 NullPointerException。
//这点Emma并不能帮你检测到
//正确应该使用如下代码
if (null == number || "".equals(number)) {
个人感觉作用不大,只能在做完单元和自动化功能测试之后检测一下还有多少代码未被覆盖,但实际上未被覆盖的代码的使用率也是低的可以忽略的了。
参考文章