一、創建測試工程java
打開Eclipse,點擊File->New一個Android Test Project ApkTest,而後點擊下一步的時候選擇This project,如下是新建的空工程android
二、創建文件夾lib放置依賴包,將robotium依賴包放進lib中,再由buildpath導入app
三、將被測APK從新簽名ide
由於robotium要求被測應用和測試代碼要有一致的簽名, 因此咱們須要把下載到的apk,經過re-sign.jar來產生debug key的apk,這個從新生成的apk就會跟測試項目簽名一致了工具
在命令行下 經過 java -jar re-sign.jar就會出現一個圖形界面,而後將apk拖到這個界面中:測試
3.1 會生成一個以debug結尾的APK(這個就是被從新簽名APK)ui
3.2 會有一個提示框提示被從新簽名的包名以及入口activity的名字this
四、寫測試工程spa
package com.mitalk.test;
//須要導入的包 import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; import com.jayway.android.robotium.solo.Solo;
@SuppressWarnings("rawtypes")
//測試類必需要繼承ActivityInstrumentationTestCase2 public class LoginTest 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); //驅動APK的入口activity }
catch (ClassNotFoundException e)
{ throw new RuntimeException(e); } }
//初始化資源
@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(); }
@SuppressWarnings("unchecked") public LoginTest()
{ super(packageName, launchActivityClass); }
//用例 public void testLoginWithIncorrentUsernameAndPassword()
{
}
}
五、配置AndroidManifest.xml命令行
跑測試用例以前,還須要修改下文件的android:targetPackage爲被測應用的根的包名<instrumentationandroid:name="android.test.InstrumentationTestRunner"android:targetPackage="com.xiaomi.channel" />