Robotium一个棘手的问题,多个测试用例不能一起跑

onepiece2345 2012-06-18 05:59:19
学习用robotium测试框架已经2个月了,之前一直用比较顺,但是最近测了一个类似飞信的apk出现了问题,只能跑其中一个测试用例,很奇怪,跑完第一个后就卡死不动了,很奇怪。
简单用飞信的apk说明一下,希望高手可以解答一下:
飞信的apk可以在任何一个市场下到,下下来之后采用debug签名,安装到真机,手动在真机上登录飞信的帐号好密码,飞信会自动保存,当测试工程运行的时候会之间进入好友界面。
测试工程的主要代码如下:
@SuppressWarnings("rawtypes")
public class FetionTest2 extends ActivityInstrumentationTestCase2 {
private static final String TARGET_PACKAGE_ID = "cn.com.fetion";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "cn.com.fetion.android.ui.activities.StartActivity";
private static Class<?> launcherActivityClass;
static {
try

{
launcherActivityClass = Class
.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}

@SuppressWarnings("unchecked")
public FetionTest2() {
super(TARGET_PACKAGE_ID, launcherActivityClass);
}

private Solo solo;

protected void setUp() throws Exception {
Log.v("FetionTest", "执行setUp()");
solo = new Solo(getInstrumentation(), getActivity());
}

public void testFetion_1() throws Exception {
Log.v("FetionTest", "第一个Case开始");
solo.sleep(2000);
boolean expected = true;
boolean actual = solo.searchText("我的好友");//程序运行的时候之间进入主界面,主界面会有一个“我的好友”的字符串
assertEquals("期待的结果", expected, actual);
solo.goBack();//加不加这句话不是问题的关键,返回与否,第二条case都会卡住停滞不走
Log.v("FetionTest", "第一个Case结束");
}

public void testFetion_2() throws Exception {//与上一个测试用例一样,但是这个case却不会运行,盼求高手解答,小弟不胜感谢!!!
Log.v("FetionTest", "第二个Case");
solo.sleep(2000);
boolean expected = true;
boolean actual = solo.searchText("我的好友");
assertEquals("期待的结果", expected, actual);
solo.goBack();
Log.v("FetionTest", "第二个Case");
}


public void tearDown() throws Exception {
Log.v("FetionTest", "执行tearDown()");

try {
solo.finalize();
} catch (Throwable e) {

e.printStackTrace();
}
getActivity().finish();
super.tearDown();
}

}


执行之后LogCat日志里显示06-18 07:14:47.783: V/FetionTest(23489): 执行setUp()
06-18 07:14:48.703: V/FetionTest(23489): 第一个Case开始
06-18 07:14:52.363: V/FetionTest(23489): 第一个Case结束
06-18 07:14:52.363: V/FetionTest(23489): 执行tearDown()
06-18 07:14:52.633: V/FetionTest(23489): 执行setUp()


也就是说第二个用例至始至终都没有运行,卡在那里不动了,不知道有什么方法解决??????????
...全文
829 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Libraeking 2014-05-21
  • 打赏
  • 举报
回复
getActivity().finish();改成solo.finishOpenedActivities();
davidyjd2013 2013-10-18
  • 打赏
  • 举报
回复
楼主解决了,求分享啊。
miniloveyu 2012-12-19
  • 打赏
  • 举报
回复
我也遇到这个问题了,楼主解决了吗,可否分享下啊
lvmin410119 2012-12-11
  • 打赏
  • 举报
回复
将teardown中的try语句中solo.finalize(); 改为:this.solo.finishOpenedActivities();
riyuefeng9 2012-11-30
  • 打赏
  • 举报
回复
什么问题? 解决了没?
riyuefeng9 2012-11-29
  • 打赏
  • 举报
回复
哪里错了? 我新手 也碰到这个问题, 求澄清
xuzhou2614 2012-10-17
  • 打赏
  • 举报
回复
框架的tearDown()
写错了。
querentongguo 2012-08-16
  • 打赏
  • 举报
回复
游牧大神出来解决下?

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧