Android uiautomator runtest error no encontró clase
Recientemente he intentado empezar con las pruebas de uiautomation android.
El tutorial del sitio del desarrollador que he trabajado a través de un par de veces y después de tener algunos problemas y resolverlos ahora tengo un problema más grande.
- Cómo gestionar varias tareas asíncronas de forma eficiente en Android
- Android.app.ServiceConnectionLeaked: Activity ... MainActivity ha filtrado ServiceConnection ... MainActivity $ 1 @ e794142 que estaba vinculado originalmente aquí
- API de Google Places para Android - PlacePikcer sin opción de búsqueda
- ¿Existe una forma oficial de autenticar Google Data API en Android mediante cuentas AccountManager?
- Sube un archivo a S3 usando el SDK de AWS
Creé un proyecto, importé los dos archivos jar y construí un escenario de prueba de java (el del tutorial.) Después de que creé un projekt uitest con la línea de comandos de shell. Actualizado el build.xml creó un archivo jar y lo empujó a mi dispositivo.
En cuanto a bueno todo funcionó bien sobre este punto.
Pero tratando de ejecutar mis pruebas con la línea de comandos:
adb -s <ANDROID_SERIAL> shell uiautomator runtest DeviceUnlocker.jar -c cddDeviceUnlocker
Sólo obtengo el error:
INSTRUMENTATION_RESULT: shortMsg = java.lang.RuntimeException
INSTRUMENTATION_RESULT: longMsg = No encontró la clase "cddDeviceUnlockingPseudoCodeTest en la ruta: /system/framework/android.test.runner.jar: /system/framework/uiautomator.jar :: /data/local/tmp/DeviceUnlocker.jarINSTRUMENTATION_CODE: 0
- Establecer visibilidad no funciona imageview
- Necesita explicación sobre esta sintaxis de inicialización de objetos Java
- Cualquier forma de incrustar javadoc en un tarro
- Cómo pasar un argumento a una prueba junit de android (pruebas parametrizadas)
- ¿Qué es una clase de adaptador?
- Cómo desactivar la acción onCreate cuando se cambiará la orientación?
- ¿Cómo decirle a ProGuard que ofusque métodos y nombres de clase?
- Java (Android) Insertar icono en lienzo
Okay la manera más fácil es sólo crear dentro de eclipse un nuevo proyecto androide junit.
Creo que esto es más o menos igual a uiautomator. Y creo que podría tener las mismas oportunidades … corregirme si estoy equivocado …
Uiautomator todavía no está funcionando … y también encontré algunos errores en el uibuild.xml de android mismo
<target name="test" description="Runs tests"> <!-- todo: fix this --> <fail message="Launching tests from Ant not supported yet" />
<exec executable="${adb}" failonerror="true"> <arg line="${adb.device.arg}" /> <arg value="shell" /> <arg value="uiautomator" /> <arg value="runtest" /> <arg value="${out.filename}" /> <arg value="-e" /> <arg value="class" /> <arg value="com.android.uiautomator.samples.skeleton.DemoTestCase" /> </exec> </target>`
gracias por tu ayuda. Para mí uiautomator no es ninguna opción más. Saludos
- Nuevo JavaProjekt (import JUnit android.jar uiautomator.jar
- Crear paquetes cdd
- Copiar el dispositivo TestCase Desbloquear pseudoTestCase en Projekt
- Ejecute cmd 4.1. "Set ANDROID_HOME =" a la ubicación sdk 4.2. \ Tools \ android create uitestprojekt -n nombre -t "android-16" -p projPath
- Editar build.xml que se creó a partir del comando create: código añadido:
<delete dir="jar"/>
<mkdir dir="jar" />
<javac destdir="bin" encoding="UTF-8" debug="on" target="1.6" includeantruntime="false"> <src path="src" /> </javac> <jar destfile="jar/uiautomator.jar"> <fileset dir="bin" /> </jar>
- Corre como hormiguero
- Cmd -> cd ANDROID_HOME-> cd plataforma-herramientas
- Adb push /jar/uiautomator.jar datos / local / tmp
- Adb -s shell uiautomator runtest DeviceUnlocker.jar -c cddDeviceUnlocker
Que fueron todos los pasos que he hecho
Gracias
Asegúrese de que ha compilado las clases de java en android dex !
He encontrado el mismo problema cuando ponen un paquete puro del jar del java a / data / tmp /.
Suponga que su proyecto es device-unlock
:
cd device-unlock android create uitest-project -n device-unlock -t 1 -p . and build
Ahora encontrará el paquete jar dexed en bin/device-unlock.jar
, ábralo con zip verá un classes.dex
.
Con este tarro, debe estar bien para continuar su prueba.
Tuve el mismo problema e hizo un rápido haxx para arreglarlo:
Resuelve por:
- Vaya a UiautomationTest proyecto y desde el bin / carpeta de copia de la classfile (s). En mi caso copié toda la estructura de carpetas com / poc / MyTest.class
- Vaya al proyecto App-Under-Test y en la carpeta bin / después de los datos de la clase. En mi caso, la / poc / MyTest.class se fusiona con las clases existentes en com /
- Volver a construir el proyecto UiAutomation con "hormigas"
- Volver a implementar y ahora se puede ejecutar!
Esto es sólo una solución, pero identificó el caso raíz – que la clase de testcase se excluye de la UiAutomator buildstep
Mientras ejecuta el comando Tests de uiautomator, ejecútelo de la siguiente manera
Ejemplo:
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings adb shell uiautomator runtest "jar name" -c "packagename"."Classname"
Esto debería funcionar.
La mejor manera de comprobar este problema es ejecutar este comando sin usar -c <classpath>#<testMethod>
y comprobar si funciona. Si funciona, compruebe que el nombre de clase que imprime en el terminal es el que se utiliza con -c
adb -s shell uiautomator runtest DeviceUnlocker.jar
- Error en el método ProgressDialog.dimiss cuando se llama por AsyncTask
- Biblioteca de Android Declare-Styleable Runtime Error