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.

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.jar

INSTRUMENTATION_CODE: 0

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

  1. Nuevo JavaProjekt (import JUnit android.jar uiautomator.jar
  2. Crear paquetes cdd
  3. Copiar el dispositivo TestCase Desbloquear pseudoTestCase en Projekt
  4. 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
  5. 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> 
  1. Corre como hormiguero
  2. Cmd -> cd ANDROID_HOME-> cd plataforma-herramientas
  3. Adb push /jar/uiautomator.jar datos / local / tmp
  4. 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:

  1. 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
  2. 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 /
  3. Volver a construir el proyecto UiAutomation con "hormigas"
  4. 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 
  • MotionEvent.ACTION_UP no funciona
  • Tiempo de procesamiento de OpenCV Mat
  • Android: Pasar datos (extras) a un fragmento
  • ¿Cómo puedo hacer una aplicación Java utilizando la API Monkeyrunner?
  • Añade más espacio entre los elementos de Android Spinner sin estilo personalizado?
  • Android captura nueva llamada saliente
  • Cómo acceder a variables de actividad de un fragmento Android
  • Mejora de Cordova PhoneGap a 5.1.1 desde 2.2.0
  • Carga de una biblioteca nativa en una prueba de Android JUnit
  • If-else trabajando, no cambie
  • Robolectric sombra no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.