2011-12-13 11 views
5

Sto eseguendo UIAutomation per Android utilizzando Robotium e ActivityInstrumentationTestCase2. Ho una suite di test con 5 test. A volte il mio test si arresta in modo casuale perché inizia un test, una volta che il test precedente non è ancora terminato. C'è un modo per evitarlo? è possibile aggiungere manualmente un ritardo di 10 secondi prima di ogni test per allontanarsi da questo orribile bug fastidioso?Test Android - Problema con 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

Questo suona molto strano, puoi pubblicare il codice dei tuoi test? – gianpi

risposta

0

costruzione delle mie prove, teardown, ecc, sono leggermente diversi e funziona bene (vedi sotto). Ho dovuto aggiungere un sonno per aggirare alcuni fallimenti non deterministici del test.

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(); 
} 
} 
Problemi correlati