2011-12-13 19 views
5

Estoy ejecutando UIAutomation para Android utilizando Robotium y ActivityInstrumentationTestCase2. Tengo un banco de pruebas con 5 pruebas. A veces mi prueba falla aleatoriamente porque se inicia una prueba, una vez que la prueba anterior aún no ha finalizado. ¿Hay alguna manera de evitar esto? ¿Es posible agregar manualmente un retraso de 10 segundos antes de cada prueba para alejarse de este horrible y molesto error?Android Testing - 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

Esto suena muy raro, puede publicar la código de tus pruebas? – gianpi

Respuesta

0

la construcción de mis pruebas, desmontaje, etc, son ligeramente diferentes y funciona bien (ver más abajo). Tuve que agregar un descanso para solucionar algunos fallos de prueba no deterministas.

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