¿Cómo iniciar CTS usando la línea de comando en Windows?
Pregunta
Para Android 2.3, uso esta línea de comando para ingresar a la consola CTS:
java -xmx512m -cp%cts_root% tools ddmlib -prebuilt.jar;%cts_root% herramientas cts.jar;%cts_root% tools junit.jar;%CTS_ROOT% Tools hosttestlib.jar com.android.cts.testhost%CTS_ROOT% Repository/host_config.xml
¿Existe una forma similar de ejecutar Android 4.0 CTS como esta sin algo parecido a cygwin?
Solución
Para ejecutar Android 4.0+ CTS en Windows
aquí está mi solución: (supongo que todas las rutas (adb)/classpath(Java) están configuradas correctamente)
1.descargue y descomprima el archivo CTS (por ejemplo, pongo todos los archivos descomprimidos en D:\cts, la carpeta se verá como D:\cts\android-cts)
http://source.android.com/compatibility/downloads.html
2.Cree el archivo cts_windows.bat y colóquelo en la carpeta de herramientas.(es decir, D:\cts\android-cts ools\cts_windows.bat en mi caso)
edite el archivo cts_windows.bat con el siguiente código (recuerde usar el suyo propio -DCTS_ROOT
camino):
java -cp ddmlib-prebuilt.jar;tradefed-prebuilt.jar;hosttestlib.jar;cts-tradefed.jar -DCTS_ROOT=D:\cts com.android.cts.tradefed.command.CtsConsole
- Ejecute el archivo cts_windows.bat y se convertirá en un shell como "cts-tf>", entonces puede ejecutar CTS usando el comando "Ejecutar CTS --PLAN CTS".
para obtener más instrucciones, lea el manual enhttp://source.android.com/compatibility/android-cts-manual-r4.pdf
Otros consejos
Para 4.1 CTS Suite, realicé diferentes tareas que resolvieron mi problema.
Para usuarios de Windows que ejecutan Cygwin:
-
Modifique la configuración de JAR_PATH en la línea 81, reemplace los dos puntos por un punto y coma.
También agregue comillas alrededor de la tarea.Debería verse como el siguiente comando:
Malo :JAR_PATH=${JAR_PATH}:${JAR_DIR}/${JAR}
Bueno :JAR_PATH="${JAR_PATH};${JAR_DIR}/${JAR}"
-
¡Asegúrese de ejecutar el script cts-tradefed dentro del mismo directorio!
La línea 73 asume que si CTS_ROOT no está definido, entonces el usuario está en el mismo directorio que cts-tradefed.
Pero las instrucciones le dicen a la persona que ejecute el script desde el directorio en el que se encuentra cts-android.
Bueno: ./cts-tradefed
Malo: ./android-cts/tools/tradefed
Puedo ejecutar CTS en Windows. La excepción anterior se resuelve pasando el directorio raíz de CTS adecuado.
Por defecto, CTS se refiere a android-cts como directorio raíz, por lo que debemos mantener la carpeta como "D: \ Android \ android-cts"
Pase -DCTS_ROOT= D: \ Android
Entonces, "Causado por: java.io.FileNotFoundException: carpeta de instalación CTS D: \ cts \ android-cts" se resolverá.
java -cp ddmlib-prebuilt.jar; tradefed-prebuilt.jar; hosttestlib.jar; cts-tradefed.jar -DCTS_ROOT= D: \ Android com.android.cts.tradefed.command.CtsConsole
Con el script anterior puedo EJECUTAR CTS en mi dispositivo de usuario.
Gracias., Ganesh Kumar Ramamoorthy
No recomendaría ejecutar CTS en Windows.
Hasta Android 4+, el uso de la solución alternativa sugerida aquí (usar archivo por lotes) funcionó, pero cuando lo probé, hubo muchas fallas y muchas pruebas incluso no se ejecutaron en absoluto. Además, de acuerdo con la documentación de Google CTS, debería ejecutarse solo en Linux o MAC, entonces, ¿cómo puede garantizar que las fallas se deben al dispositivo bajo prueba (falla real) o porque lo está ejecutando en un entorno no compatible?
Sin embargo, a partir de Android 6+, el uso de archivos por lotes en Windows no funcionó para mí, CTS buscará bash que solo existe en la máquina Linux y saldrá de la ejecución antes de que comience.
Cuando intenta ejecutar en Linux, funciona a la perfección.