2009-06-15 13 views
17

Me gustaría que mi aplicación de prueba de iphone se pruebe automáticamente en un iPhone. Los siguientes son los pasos que me gustaría tener:XCode Test Automation para iPhone

  1. compilación, enlace y el código de firmar la aplicación para el iPhone (xcodebuild)
  2. subir la aplicación de nueva construcción para iPhone
  3. ejecutar la aplicación cargado en el iPhone de forma automática
  4. recoger el resultado de la consola gDB
  5. cerrar la aplicación

en este momento, no tengo problema con los pasos 2 y 3 en el que no puedo hacer automáticamente (puedo hacerlo desde XCode a través del botón "Build and Debug"). Esto, sin embargo, requerirá un clic manual).

Hice algunas investigaciones sobre el automatizador y no responde mi problema. Otra opción en la que estoy pensando es tener la aplicación compilada para el simulador de iphone y ejecutarla desde allí, pero no estoy seguro de qué tan preciso será el resultado de la prueba en comparación con el dispositivo real.

Soy nuevo en el desarrollo de Mac/iPhone, tal vez alguien tiene una mejor manera de probar esto. Cualquier comentario y aporte son bienvenidos. Gracias.

Respuesta

5

La herramienta que probablemente desee utilizar para la compilación e instalación es Applescript. Algo como:

tell application "Xcode" to launch 

No pretendo que esta sea una respuesta completa; todavía hay muchas cosas por resolver. Pero Applescript va a ser una de sus herramientas clave, creo.

+0

gracias por el puntero. Logré ejecutar XCode usando el applescript. En este momento, tengo que averiguar cuál es la sintaxis para hacer clic en seleccionar el proyecto correcto y hacer clic en "compilar e ir". Pasará bastante tiempo antes de que salga con algo útil. – chuan

+2

No lo considere como "haga clic en compilar y listo". Debes pensar en los eventos. Si obtienes un "clic" en tu cabeza, a menudo vas por el camino equivocado. El comando para compilar es "compilar". Querrá pasar mucho tiempo en el "Diccionario abierto" del Editor de Applescript para ver lo que ofrece Xcode. Querrás comandos como 'compilar usando la configuración de compilación llamada' Release 'del primer proyecto'. 'lanzamiento' es lo que ejecutará. 'establecer arquitectura activa' también puede ser importante. La pregunta más difícil es cómo obtener fácilmente la salida de la consola. –

+1

la salida de la consola se puede hacer de esta manera: tipo de terminal en los siguientes comandos: defaults write com.apple.Xcode PBXGDBDebuggerLogToFile SÍ defaults write com.apple.Xcode PBXGDBDebuggerLogFileName Con esto, Escribo un script python para llamar a compilación y ejecuto la aplicación de prueba. A continuación, seleccione el registro de salida después de la prueba. Por cierto, gracias de nuevo por los indicadores de Applescript. Lo intentaré hoy. – chuan

1

Hay una herramienta de línea de comandos "xcodebuild" a la que puede llamar para iniciar una compilación XCode sin que esté abierta. Hay indicadores que puede usar para establecer objetivos, etc.

+0

gracias por la ayuda. xcodebuild solo compilará el binario y no cargará el binario recién compilado a iphone. Si hay una bandera/opción que necesito especificar para que funcione, me gustaría saberlo. – chuan

0

¿Es posible añadir una fase de construcción para el objetivo que se ejecuta un script para cargar el binario para el iPhone Dr. Nic?

Haga clic derecho en el objetivo, Agregar-> Nueva Construcción Fase-> Nuevo script Ejecutar fase de construcción

16

La sección de comentarios no proporciona una buena manera de mostrar la aproximación adecuada. Aquí está el resumen de la respuesta.

La tarea de crear la aplicación para iPhone, cargar y activar el proceso de depuración en el iPhone se realiza a través de AppleScript. Así es como se ve AppleScript:

tell application "Xcode" 
    open "Users:chuan:Desktop:iphone_manual_client:iphone_manual_client.xcodeproj" 
    tell project "iphone_manual_client" 
     clean 
     build 
     (* for some reasons, debug will hang even the debug process has completed. 
      The try block is created to suppress the AppleEvent timeout error 
     *) 
     try 
      debug 
     end try 
    end tell 
    quit 
end tell 

AppleScript acepta ":" en lugar de "/" para el separador de archivos y carpetas.

La salida de la consola GDB se puede capturar configurando la opción GDB para escribirla en el archivo. esto se hace escribiendo el siguiente comando en el terminal:

defaults write com.apple.Xcode PBXGDBDebuggerLogToFile YES 
defaults write com.apple.Xcode PBXGDBDebuggerLogFileName <path to my gdb output file> 

Por último, muchas gracias a diversas PPL que han ayudado a resolver este problema.

0

xcodebuild solo compilará el binario y no cargará el binario recién compilado en iphone.

realidad se puede subir (después de la firma del mismo), pero no correr demasiado malo ... tal vez se puede ejecutar mediante GDB Una vez conectado a apuntar, pero la forma (USB ?, ip? USBnet?)?

2

Eche un vistazo a iphone_testify, funciona bien con OCUnit y Google Toolbox para Mac, y creo que podría extenderse para algo como UISpec.

Saludos

Cuestiones relacionadas