2011-12-13 46 views
5

我正在爲使用Robotium和ActivityInstrumentationTestCase2的android運行UIAutomation。我有一個包含5個測試的測試套件。 有時我的測試會隨着測試的開始而隨機崩潰,一旦以前的測試尚未結束。 有沒有辦法避免這種情況?是否有可能在每次測試之前手動添加10秒延遲以擺脫這個可怕的煩人錯誤?Android測試 - 問題與ActivityInstrumentationTestCase2?

編輯:

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

這聽起來很奇怪,你可以張貼更好你的測試代碼? – gianpi 2011-12-13 20:23:01

回答

0

我測試的建設,拆卸等方面都略有不同,並且效果很好(見下文)。我不得不添加睡眠來解決一些非確定性測試失敗。

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(); 
} 
} 
相關問題