[2014-06-19]
今天尝试卸载被测应用,发现只要应用被卸载就会直接报错,脚本停止运行.
这和Robotium的实现原理有本质关系.一旦应用都没了,整个模拟都结束了.需要更多了解一下Robotium的原理.其实就是Android自带测试框架的原理.
编写的脚本是清除被测应用的用户数据,就直接结束case了,导致结束时,直接报错
Test run failed: Instrumentation run failed due to 'Process crashed.'
脚本如下:
solo.sleep(500);
Log.d("Blue", "调用");
Uri packageUri = Uri.parse("package:" + "packageName");
Intent uninstallIntent = new Intent();
uninstallIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
uninstallIntent.setData(packageUri);
getActivity().startActivity(uninstallIntent);
Log.d("Blue", "完成");
//目前没有找到更好的方法进行用户数据清楚,只好用最笨的方式用input发送点击
solo.sleep(1000);
method.execShell("input swipe 500 1400 500 300");
solo.sleep(1000);
method.execShell("input tap 540 742");
solo.sleep(1000);
method.execShell("input tap 800 1780");
solo.sleep(1000);
想了想,也对, tearDown()里写着solo.finshOpenedActivities(),如果solo都没了,的确会出问题.
所以就加了一行
method.execShell("am start -n packageName/activityName");