换电脑重新开始写一套用例,正好借此机会把robotium的相关知识记录一下。
一 创建一个Test Project
1. 打开eclipse,选择File->New->Project…->Android Test Project,点击Next。
如果有源代码则根据下面2-3的步骤
2. 在Test Project Name中输入测试工程的名称,如:AAATest。选择An existing Android Project,点击右边的Browse…按钮。
3. 选择被测工程,如之前创建的AAA,点击OK按钮。
如果没有原代码,则根据下面的2-3步骤
2. 在Test Project Name中输入测试工程的名称,如:AAATest。选择This Project,点击右边的Browse…按钮。
3. 无
4. 自动选择和输入Build Target和Properties,可以按照默认的,不用修改,点击finish,至此新的测试工程已经创建成功了
二创建一个TestCase
1. 在AAATest->src->com.bbb.aaa.test上,右击选择New->Class,创建一个Test Case,并未testcase命名
三 导入robotium.jar文件
1. 选择测试工程AAATest右击,选择Build Path->Configure Build Path->Java Build Path ->Libraries->Add External JARs
2. 选择robotium.jar文件,我用的是robotium-solo-5.1.jar文件,然后选择OK
四修改testcase
package com.remotecontroller.function.test;
//需要导入的包
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.robotium.solo.*;
//import com.jayway.android.robotium.solo.Solo;
@SuppressWarnings("rawtypes")
public class remoteController extends ActivityInstrumentationTestCase2 {
// 定义变量
private static final String TAG = "TAG";
public Solo solo;
public int timeout = 1800;
public Activity activity;
private static Class<?> launchActivityClass;
// 对应re-sign.jar生成出来的信息框里的两个值
private static String mainActiviy = "com.xiaomi.mitv.phone.remotecontroller.HomeActivity";
private static String packageName = "com.duokan.phone.remotecontroller";
static {
try {
launchActivityClass = Class.forName(mainActiviy);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public remoteController() {
super(packageName, launchActivityClass);
}
@Override
protected void setUp() throws Exception {
super.setUp();
this.activity = this.getActivity();
this.solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
try {
this.solo.finishOpenedActivities();
} catch (Throwable e) {
e.printStackTrace();
}
this.activity.finish();
super.tearDown();
}
}
之后就可以增加测试用例了,如果用例增加完了之后,就可以运行测试了
五 运行测试程序
选择测试工程AAATest右击,选择Run As->AndroidJUnit Test运行测试程序,运行完成后junit里面会显示测试结果
六 记录配置和AndroidManifest.xml
AndroidManifest.xml