Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新启动应用程序并按照相同的步骤操作Robotium_Robotium_Relaunch - Fatal编程技术网

重新启动应用程序并按照相同的步骤操作Robotium

重新启动应用程序并按照相同的步骤操作Robotium,robotium,relaunch,Robotium,Relaunch,我正在学习使用robotium,我正在尝试重新启动应用程序,并重复同样的步骤5次。我知道如何进行循环,但如何重新启动应用程序?我用robotium recorder做了一些,但是手动编辑脚本比再次录制更容易,所以我正在努力解决这个问题 import com.robotium.solo.*; import android.test.ActivityInstrumentationTestCase2; @SuppressWarnings("rawtypes") public class explo

我正在学习使用robotium,我正在尝试重新启动应用程序,并重复同样的步骤5次。我知道如何进行循环,但如何重新启动应用程序?我用robotium recorder做了一些,但是手动编辑脚本比再次录制更容易,所以我正在努力解决这个问题

import com.robotium.solo.*;
import android.test.ActivityInstrumentationTestCase2;


@SuppressWarnings("rawtypes")
public class explore extends ActivityInstrumentationTestCase2 {
    private Solo solo;

    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.application.calc.android.main.CGabboMainActivity";

    private static Class<?> launcherActivityClass;
    static{
        try {
            launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
        } catch (ClassNotFoundException e) {
           throw new RuntimeException(e);
        }
    }

    @SuppressWarnings("unchecked")
    public explore() throws ClassNotFoundException {
        super(launcherActivityClass);
    }

    public void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation());
        getActivity();
    }

    @Override
    public void tearDown() throws Exception {
        solo.finishOpenedActivities();
        super.tearDown();
    }


    public void testRun() {

        // Wait for activity: 'com.application.calc.android.main.CGabboMainActivity';
        solo.waitForActivity("CGabboMainActivity", 2000);
        // Sleep for 10211 milliseconds
        solo.sleep(5000);
        // Click on source_internet_radio
        solo.clickOnWebElement(By.id("handle_name"));
        //Sleep for 5697 milliseconds
        solo.clickOnWebElement(By.id("source_help"));
        solo.clickOnWebElement(By.id("nav_item_1"));
        //solo.finishOpenedActivities();
        //solo.waitForActivity("CGabboMainActivity", 2000);
        //this.launchActivity(LAUNCHER_ACTIVITY_FULL_CLASSNAME, launcherActivityClass,null);
        //solo.clickOnWebElement(By.xpath(".//*[@id='nav_panel_0']/div[1]/div/div[2]"));
        //solo.sleep(15211);
        //solo.clickOnWebElement(By.id("handle_name"));
    }
}
导入com.robotium.solo.*;
导入android.test.ActivityInstrumentationTestCase2;
@抑制警告(“原始类型”)
公共类explore扩展了ActivityInstrumentationTestCase2{
私人独奏;
私有静态最终字符串启动器\u ACTIVITY\u FULL\u CLASSNAME=“com.application.calc.android.main.CGabboMainActivity”;
私有静态类启动器ActivityClass;
静止的{
试一试{
launcherActivityClass=Class.forName(LAUNCHER\u ACTIVITY\u FULL\u CLASSNAME);
}catch(classnotfounde异常){
抛出新的运行时异常(e);
}
}
@抑制警告(“未选中”)
public explore()抛出ClassNotFoundException{
超级(活动类);
}
public void setUp()引发异常{
super.setUp();
solo=新的solo(getInstrumentation());
getActivity();
}
@凌驾
public void tearDown()引发异常{
solo.finishOpenedActivities();
super.tearDown();
}
公共void testRun(){
//等待活动:“com.application.calc.android.main.CGabboMainActivity”;
solo.waitForActivity(“CGabboMainActivity”,2000年);
//睡眠10211毫秒
单人睡眠(5000);
//点击源\互联网\收音机
solo.clickOnWebElement(By.id(“handle_name”);
//睡眠5697毫秒
solo.clickOnWebElement(By.id(“source\u help”);
solo.clickOnWebElement(By.id(“导航项1”);
//solo.finishOpenedActivities();
//solo.waitForActivity(“CGabboMainActivity”,2000年);
//this.launchActivity(LAUNCHER\u ACTIVITY\u FULL\u类名,LaunchActivityClass,null);
//solo.clickOnWebElement(By.xpath(“./*[@id='nav_panel_0']]/div[1]/div/div[2]”);
//独唱《睡眠》(15211);
//solo.clickOnWebElement(By.id(“handle_name”);
}
}

我可以建议创建带有测试逻辑的私有helper方法和调用helper的5种不同测试方法。在每个测试方法之前都有设置,在拆卸之后,应用程序将重新启动。您的类可以如下所示:

import com.robotium.solo.*;
import android.test.ActivityInstrumentationTestCase2;

@SuppressWarnings("rawtypes")
public class explore extends ActivityInstrumentationTestCase2 {
    private Solo solo;

    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.application.calc.android.main.CGabboMainActivity";

    private static Class<?> launcherActivityClass;
    static{
        try {
            launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
        } catch (ClassNotFoundException e) {
           throw new RuntimeException(e);
        }
    }

    @SuppressWarnings("unchecked")
    public explore() throws ClassNotFoundException {
        super(launcherActivityClass);
    }

    public void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation());
        getActivity();
    }

    @Override
    public void tearDown() throws Exception {
        solo.finishOpenedActivities();
        super.tearDown();
    }

    public void testRun1() {
        helper();
    }

    public void testRun2() {
        helper();
    }

    public void testRun3() {
        helper();
    }

    public void testRun4() {
        helper();
    }

    public void testRun5() {
        helper();
    }

    private void helper() {
        // Wait for activity: 'com.application.calc.android.main.CGabboMainActivity';
        solo.waitForActivity("CGabboMainActivity", 2000);
        // Sleep for 10211 milliseconds
        solo.sleep(5000);
        // Click on source_internet_radio
        solo.clickOnWebElement(By.id("handle_name"));
        //Sleep for 5697 milliseconds
        solo.clickOnWebElement(By.id("source_help"));
        solo.clickOnWebElement(By.id("nav_item_1"));
        //solo.finishOpenedActivities();
        //solo.waitForActivity("CGabboMainActivity", 2000);
        //this.launchActivity(LAUNCHER_ACTIVITY_FULL_CLASSNAME, launcherActivityClass,null);
        //solo.clickOnWebElement(By.xpath(".//*[@id='nav_panel_0']/div[1]/div/div[2]"));
        //solo.sleep(15211);
        //solo.clickOnWebElement(By.id("handle_name"));
    }
}
导入com.robotium.solo.*;
导入android.test.ActivityInstrumentationTestCase2;
@抑制警告(“原始类型”)
公共类explore扩展了ActivityInstrumentationTestCase2{
私人独奏;
私有静态最终字符串启动器\u ACTIVITY\u FULL\u CLASSNAME=“com.application.calc.android.main.CGabboMainActivity”;
私有静态类启动器ActivityClass;
静止的{
试一试{
launcherActivityClass=Class.forName(LAUNCHER\u ACTIVITY\u FULL\u CLASSNAME);
}catch(classnotfounde异常){
抛出新的运行时异常(e);
}
}
@抑制警告(“未选中”)
public explore()抛出ClassNotFoundException{
超级(活动类);
}
public void setUp()引发异常{
super.setUp();
solo=新的solo(getInstrumentation());
getActivity();
}
@凌驾
public void tearDown()引发异常{
solo.finishOpenedActivities();
super.tearDown();
}
公共void testRun1(){
助手();
}
公共void testRun2(){
助手();
}
公共void testRun3(){
助手();
}
公共void testRun4(){
助手();
}
公共void testRun5(){
助手();
}
私有void助手(){
//等待活动:“com.application.calc.android.main.CGabboMainActivity”;
solo.waitForActivity(“CGabboMainActivity”,2000年);
//睡眠10211毫秒
单人睡眠(5000);
//点击源\互联网\收音机
solo.clickOnWebElement(By.id(“handle_name”);
//睡眠5697毫秒
solo.clickOnWebElement(By.id(“source\u help”);
solo.clickOnWebElement(By.id(“导航项1”);
//solo.finishOpenedActivities();
//solo.waitForActivity(“CGabboMainActivity”,2000年);
//this.launchActivity(LAUNCHER\u ACTIVITY\u FULL\u类名,LaunchActivityClass,null);
//solo.clickOnWebElement(By.xpath(“./*[@id='nav_panel_0']]/div[1]/div/div[2]”);
//独唱《睡眠》(15211);
//solo.clickOnWebElement(By.id(“handle_name”);
}
}
另一种方法是创建自己的测试套件