2012-07-24 14 views
12

Intente iniciar JUnit prueba (robotium) para mi aplicación.Error al ejecutar la prueba: la ejecución de la prueba no se completó. Esperado 1 pruebas, recibido 0

public class MainTest extends ActivityInstrumentationTestCase2<MainActivity> { 
    private Solo solo; 

    public MainTest() { 
     super("nix.android.contact", MainActivity.class);// TODO Auto-generated constructor stub 
    } 

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

    public void AddContact() { 
     solo.assertCurrentActivity("main", MainActivity.class); 
    } 
} 

Manifiesto

<instrumentation 
    android:name="android.test.InstrumentationTestRunner" 
    android:targetPackage="nix.android.contact" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <uses-library android:name="android.test.runner" /> 
</application> 

When I try run test, get in console:

Test run failed: Test run failed to complete. Expected 1 tests, received 0 

I try create other test for other app (very simple app) - works.

Thanks

Respuesta

1

The problem is in your call at

super("nix.android.contact", MainActivity.class); 

In my code I have

super("nix.android.contact", Class.forName("nix.android.contact.MainActivity")); 

I've also done it this way without have to name the Generic for the ActivityInstrumentationTestCase 2

public class TestApk extends ActivityInstrumentationTestCase2 { 

    private static final String TARGET_PACKAGE_ID = "nix.android.contact"; 
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "nix.android.contact.MainActivity"; 

    private static Class<?> launcherActivityClass; 
    static{ 
      try { 
        launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 
      } catch (ClassNotFoundException e) { 
        throw new RuntimeException(e); 
      } 
    } 

    @SuppressWarnings("unchecked") 
    public TestApk() throws ClassNotFoundException { 
      super(TARGET_PACKAGE_ID, launcherActivityClass); 
    } 
1

I had the same error message. The problem was that my test method name needed to start with 'test'.

Eg: testMethod1() obras mientras method1Test() da el error.

+0

Derecha. ¡Todos los métodos tienen que tener nombres con el prefijo "prueba"! – Alex

+0

¿Es esto una broma? – Janosch

5

Tuve este problema cuando no tenía un constructor sin argumentos.

public class MainActivityTest extends 
    ActivityInstrumentationTestCase2<MainActivity_> { 

public MainActivityTest() { 
    super(MainActivity_.class); 
} 
... 
-2

Todos los nombres de las pruebas deben comenzar con el prefijo "prueba".

0

Compruebe que no está probando un método que depende de la constructora de la prueba, pero que nada en la aplicación utiliza - logcat se quejará sobre una clase o método faltante de su paquete de aplicación.

Intente desinstalar el paquete de destino, para comprobar que no haya quedado de una compilación alternativa (si, por ejemplo, utiliza Maven junto a Eclipse).

0

tuve este error y me fijo que eliminar el parámetro del método constructor, que fue creado por asistente Eclipse como:

public OptionsActivityTest(String name) { 

sólo tenía que quitar el "String name" para hacer mi trabajo pruebas de nuevo.

Cuestiones relacionadas