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());?
? }?
?
}
?