Prueba de unidades de Android en Eclipse: "Error al iniciar la prueba"
Acabo de empezar a tratar de configurar algunas pruebas de unidad en lo que es esencialmente mi primera aplicación para Android. He tenido un infierno de un tiempo para encontrar recursos para esto, pero en última instancia, fue capaz de raspar juntos lo que esperaba que fuera el camino correcto hacia adelante.
Primero, esto es lo que he hecho.
- ¿Por qué obtengo un NoClassDefFoundError al ejecutar mi prueba en ActionBarActivity?
- Soporte de la clase Robolectric de Android. Cómo tener las referencias de la clase de biblioteca R desde el proyecto de aplicación
- Combine la cobertura jacoco de androidTest y pruebe
- Robolectric + OkHttp + retrofit + prueba de unidad rxJava
- UnitTest JSONObject muestra null
En Eclipse, hice clic con el botón secundario en mi proyecto para el que me gustaría crear un proyecto de prueba. He seleccionado AndroidTools -> New Test Project He completado la información necesaria seleccionando una ubicación de ../MyApp/tests para el nuevo proyecto y MyApp seleccionado como el proyecto a probar. Todo lo demás se dejó como predeterminado.
Mientras que esto estaba ejecutando recibí el abajo como error:
[2011-04-01 08:13:02 – WPMSTest] ¡R.java se ha modificado manualmente! Revertir a la versión generada!
Pero todo parecía estar bien. Tenía un nuevo árbol de fuentes en mi carpeta de pruebas.
Así que traté de ejecutarlo (primero en hardware, luego en el emulador) por RunAs -> Android jUnit prueba.
En ambas carreras recibí lo siguiente en mi consola de eclipse:
[2011-04-01 08:23:04 – WPMSTest] Lanzamiento de la instrumentación android.test.InstrumentationTestRunner en el dispositivo emulador-5554
[2011-04-01 08:23:04 – WPMSTest] No se pudo iniciar la prueba
Mis dos archivos de manifiesto:
WPMSTest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.WPMS.test" android:versionCode="1" android:versionName="1.0"> <instrumentation android:targetPackage="com.WPMS" android:name="android.test.InstrumentationTestRunner" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="android.test.runner" /> </application>
WPMS:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.WPMS" android:versionCode="1" android:versionName="1.0"> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher_wpms"> <activity android:name=".WPMS" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Espero que alguien haya visto algo así antes y pueda arrojar algo de luz sobre lo que estoy haciendo mal. Por favor, hágamelo saber si necesita más archivos y me aseguraré de publicarlos.
¡Gracias!
- Cuenta de simulacro en ActivityInstrumentationTestCase2
- Acceso a recursos en un proyecto de prueba de Android
- Robolectric buildActivity () con espía Mockito?
- ¿Puedo usar Cobertura en pruebas de unidad con PowerMock?
- Necesito Robolectric y Mockito en mi prueba, cada uno propone su propio TestRunner
- ¿Cómo puedo usar Active Android con una base de datos en memoria para las pruebas de unidad usando Robolectric?
- Mock Android Application class para pruebas con Robolectric en App con Dagger 2
- Prioridad de hilo: 'prueba de unidad'
Me faltaba un TestSuite en mi proyecto de prueba. Una vez que tuve mi clase AllTests extender TestSuite me pasó el error.
Para mí, el problema era que estaba usando JUnit 4. Cuando cambié a JUnit 3 empezó a funcionar. Espero que esto ayude.
[2011-04-01 08:13:02 - WPMSTest] R.java was modified manually! Reverting to generated version!
Recibe este error cuando realiza cambios manualmente en el archivo R.java. A veces, cuando limpia el proyecto, el archivo de R.java desaparece. En tal ocasión usted debe copiar el R.java del mismo programa (si está almacenado en alguna parte como una copia) o crear un proyecto nuevo entero.
Para su segundo problema, también tengo error similar cuando estaba probando mi aplicación en el dispositivo. Tuve que hacer cambios en el shell usando $ adb. Entonces el dispositivo se reconoció.
Tuve el mismo problema: JUnit 3 TestCase funciona, pero cuando se ejecuta JUnit 4 TestCase, tengo el error "Error al iniciar la prueba".
Pero después de seguir la sugerencia de Ken, es decir, hacer que la clase de prueba JUnit 4 extienda TestCase y renombrar el método de prueba con el prefijo "test", la prueba se inicia y ejecuta la prueba!