2014-06-20 3 views
0

로보 티움을 사용하여 애플리케이션을 테스트하고 있습니다. 내 테스트 수업에는 2 가지 테스트가 있습니다.다른 액티비티 로보트에서는 테스트가 실행되지 않습니다

public class MainActivityTestAll extends ActivityInstrumentationTestCase2<MainActivity> { 

private Solo solo; 
private static TestItem item; 
private boolean isTimeOut; 
private ArrayList<Button> arrButton; 

private static final String USER_NAME = "varick"; 
private static final String PASSWORD = "123456"; 
private static final String BTN_DISMISS = "Dismiss"; 
private static final String BTN_OK = "OK"; 
private static final String BTN_TRYAGAIN = "Try Again"; 
private static final String BTN_CANCEL = "Cancel"; 
private static final String BTN_GETSTARTED = "Get Started"; 
private static final String BTN_EXIT = "Exit"; 

private static EditText edtName, edtPass; 
private View inflaterView; 

private Button btnLight, btnSwitch, btnOutlet; 

public MainActivityTestAll(String name) { 
    super(MainActivity.class); 
    setName(name); 
} 

public void setUp() throws Exception { 
    solo = new Solo(getInstrumentation(), getActivity()); 
    edtName = (EditText) solo.getView(R.id.edittext_userName); 
    edtPass = (EditText) solo.getView(R.id.edittext_passWord); 
    LayoutInflater i = (LayoutInflater) getActivity().getSystemService(
     Context.LAYOUT_INFLATER_SERVICE); 
    inflaterView = i.inflate(R.layout.consumer_welcome, null); 
    isTimeOut = true; 
    item = new TestItem(); 
} 


@MediumTest 
public void test1_DoorLock_Click() throws Exception { 

    Login(); 

    View view = (View) solo.getView(R.id.fragment_holder); 
    solo.waitForView(view); 
    solo.clickOnView(view); 
    solo.waitForActivity(ConsumerSystemMapDetailPhone.class.getName()); 

    btnLight = (Button) solo.getView(R.id.btnLight); 
    btnSwitch = (Button) solo.getView(R.id.btnSwitch); 
    btnOutlet = (Button) solo.getView(R.id.btnOutlet); 

    assertNotNull(btnLight); 
    assertNotNull(btnSwitch); 
    assertNotNull(btnOutlet); 

    solo.clickOnView(btnLight); 
    solo.clickOnView(btnSwitch); 
    solo.clickOnView(btnOutlet); 

    solo.sleep(2000); 

    arrButton = solo.getCurrentViews(Button.class, 
     solo.getView(R.id.consumerzoom_main_container)); 

    assertTrue("DoorLock button had not active", clickonDoorlock(arrButton.get(0))); 
} 


@MediumTest 
public void test2_Switch_Click() throws Exception{ 

    /* 
    btnLight = (Button) solo.getView(R.id.btnLight); 
    btnOutlet = (Button) solo.getView(R.id.btnOutlet); 
    assertNotNull(btnLight); 
    assertNotNull(btnOutlet); 

    solo.clickOnView(btnLight); 
    solo.clickOnView(btnOutlet); 
    */ 

    btnSwitch = (Button) solo.getView(R.id.btnSwitch); 
    assertNotNull(btnSwitch); 
    solo.clickOnView(btnSwitch); 
    solo.sleep(2000); 

    clickonSpinner(1, 3); 
    solo.sleep(1000); 

    arrButton = solo.getCurrentViews(Button.class, solo.getView(R.id.consumerzoom_main_container)); 
    clickonSwitch(arrButton.get(0), true, item.getbtnLevel2()); 

    clickonSpinner(0, 1); 
    clickonSpinner(1, 4); 
    solo.sleep(1000); 

    arrButton = solo.getCurrentViews(Button.class, solo.getView(R.id.consumerzoom_main_container)); 
    clickonSwitchInfortop(arrButton.get(0), false, item.getbtnParentLevel8(), item.getbtnLevel3()); 
    exitApp(); 
} 

내 문제는 test1이 끝나고 test2가 완료되지 않습니다. 아직 실행 중이지만 아무 것도하지 않습니다. test2의 코드를 test1에 넣으면 ok로 실행됩니다.

여기에 무슨 문제가 있는지 모르겠지만 test2가 MainActivity에서 시작하지 않기 때문에 그 이유가 있다고 생각합니다.

답변

2

난 당신이 해체 방법을 누락 있기 때문에 생각 :

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

나는 그 문제가 아니라 생각합니다. 나는 또한 tearDown()으로 시도하지만 작동하지 않는다. – gamo