`
xiarihexiang
  • 浏览: 36031 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Robotium 第三天: 使用TestSuite

 
阅读更多

使用junit TestSuite可以用例管理我们测试脚本的执行  

 

在第二天的基础上在新建一个测试脚本 如下:

 

 

package com.mitalk.test;

 

import android.app.Activity;

import android.test.ActivityInstrumentationTestCase2;

 

import com.jayway.android.robotium.solo.Solo;

 

@SuppressWarnings("rawtypes")

public class LoginTest2 extends ActivityInstrumentationTestCase2 {

public Solo solo;

public Activity activity;

private static Class<?> launchActivityClass;

//对应re-sign.jar生成出来的信息框里的两个值

private static String mainActiviy = "com.xiaomi.channel.ui.ChannelLauncherActivity";

private static String packageName = "com.xiaomi.channel";

 

static {

try {

launchActivityClass = Class

.forName(mainActiviy);

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

 

@SuppressWarnings("unchecked")

public LoginTest2() {

super(packageName, launchActivityClass);

}

 

@Override

protected void setUp() throws Exception {

super.setUp();

this.activity = this.getActivity();

this.solo = new Solo(getInstrumentation(), getActivity());

}

 

public void testLoginWithEmptyUsernameAndPassword() {

solo.waitForText("Login", 1, 8000);

solo.clickOnText("Login");

solo.waitForText("OK", 1, 2000);

solo.clickOnText("OK");

assertTrue(solo.searchText("Info is missing.",true));

}

@Override

public void tearDown() throws Exception {

try {

this.solo.finishOpenedActivities();

} catch (Throwable e) {

e.printStackTrace();

}

this.activity.finish();

super.tearDown();

}

 

}

 

然后新建一个TestSuit类,配置使其可以跑这两个cases

 

 

package com.mitalk.testsuit;

import junit.framework.Test;

import junit.framework.TestSuite;

 

import com.mitalk.test.LoginTest;

import com.mitalk.test.LoginTest2;

 

public class MyTestSuit {

 

 public static Test suite() { 

          TestSuite suite = new TestSuite("Sample Tests"); 

          suite.addTestSuite(LoginTest.class); 

          suite.addTestSuite(LoginTest2.class);

 

          /* 逐一添加test suite(注意,这是递归调用的) */ 

//          suite.addTest(AnotherTestSuite.suite()); 

 

          return suite; 

  } 

 

  public static void main(String args[]) { 

          junit.textui.TestRunner.run(suite()); 

  } 

 

}



 

分享到:
评论
1 楼 shenguo2008 2013-02-27  
请教:使用robotium时,一个类里面有多个test***的方法,运行完第一个方法后,再运行第二个方法的时候没有把应用关掉,导致第二个用例无法运行下去,请问这个有什么办法解决吗?如果使用测试套件也是同样的,无法关掉应用,总会停留在是否退出的确认页面上~
感谢感谢~~

相关推荐

Global site tag (gtag.js) - Google Analytics