2011-11-07 15 views
6

Dado un proyecto de Android en Eclipse compilación a partir de 2 proyectos: Project 1 es una biblioteca Java, que compila muy bien en Android. El Proyecto 2 son casos de prueba para la biblioteca, esencialmente clases que se extienden a AndroidTestCase y que arrojan resultados a la consola de Android. El Proyecto 1 es un proyecto Java, el Proyecto 2 es un proyecto Android dependiendo del Proyecto 1.ejecución android testcase desde Eclipse vs. consola instrumentación remota

Descripción del problema: Si ejecuto las pruebas de Eclipse como pruebas JUnit de Android corren como deberían, sin errores. Sin embargo, si quiero ejecutar de nuevo por la línea de comandos:

adb shell am instrument -w bla.bla/android.test.InstrumentationTestRunner

consigo una gran cantidad de

Cannot load class. Make sure it is in your apk. Class name: xyz 
java.lang.ClassNotFoundException: xyz 
    at java.lang.Class.classForName(Native Method) 
    at java.lang.Class.forName(Class.java:234) 
    at android.test.ClassPathPackageInfoSource.createPackageInfo 
    .... 

Caused by: java.lang.ClassNotFoundException: xyz in loader 
    dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/bla.apk] 
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
    .... 

errores en Logcat.

Observaciones: Eclipse instala la .apk. Más tarde ejecuto el mismo .apk ya instalado, por lo que las clases disponibles deben ser las mismas. Las clases se solicitan dinámicamente con Class c = Class.forName("xyz").

Así que mi pregunta es, ¿cómo Eclipse ejecuta el archivo .apk instalado de manera diferente para que las clases adecuadas se encuentren en el tiempo de ejecución?

+1

¿Puedo sugerir una forma mejor de probar su aplicación Android? Yo uso esto y es genial: http://pivotal.github.com/robolectric/. Sin emulador, sin proyecto de prueba por separado ... y puedo hacer TDD, iterando rápidamente. –

Respuesta

2

¿Estás seguro de que xyz.class está en CLASSPATH?

Tuve el mismo problema y fue esto.

Cuestiones relacionadas