2011-12-13 33 views
5

Tôi đang chạy UIAutomation cho android bằng cách sử dụng Robotium và ActivityInstrumentationTestCase2. Tôi có một bộ thử nghiệm với 5 bài kiểm tra. Đôi khi thử nghiệm của tôi ngẫu nhiên sụp đổ vì thử nghiệm bắt đầu, khi thử nghiệm trước đó chưa kết thúc. Có cách nào để tránh điều này không? là nó có thể tự thêm một sự chậm trễ 10 giây trước khi mỗi bài kiểm tra để có được từ lỗi gây phiền nhiễu khủng khiếp này?Thử nghiệm Android - Sự cố với ActivityInstrumentationTestCase2?

EDIT:

public class MyTest<T extends RoboActivity> extends ActivityInstrumentationTestCase2<T> 
{ 

    protected Solo solo; 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 
     solo = new Solo(getInstrumentation(), getActivity()); 
    } 

    @Override 
    protected void tearDown() throws Exception { 
     solo.finishOpenedActivities(); 

     try { 
      solo.finalize(); 
     } 
     catch (Throwable e) { 
      Assert.fail(e.getMessage()+ e.toString()); 
      e.printStackTrace(); 
     } 

     super.tearDown(); 
    } 
} 
+0

này nghe có vẻ rất lạ, bạn có thể đăng bài mã kiểm tra của bạn? – gianpi

Trả lời

0

xây dựng các bài kiểm tra của tôi, teardown, vv là hơi khác nhau và hoạt động tốt (xem dưới đây). Tôi đã phải thêm một giấc ngủ để làm việc xung quanh một số thất bại kiểm tra không xác định.

public class AccountDetailTest extends ActivityInstrumentationTestCase2<AccountDetail> { 

private Solo solo; 

public AccountDetailTest() { 
    super("com.bigcorp.breadmaker", AccountDetail.class); 
} 

@Override 
public void setUp() { 
    solo = new Solo(getInstrumentation(), getActivity()); 
    solo.sleep(500); //wait for activity to initialize 
} 

@SmallTest 
public void testDummy() { 
    assertNotNull(solo); 
} 

@Override 
public void tearDown() throws Exception { 
    solo.finishOpenedActivities(); 
} 
} 
Các vấn đề liên quan