2012-02-06 13 views
13

Estoy tratando de hacer End-to-End automatización para un iOS proyecto. Mi objetivo es automatizar el proceso de integración continua con adjuntar scripts UIAutomation como acción de creación posterior. Entonces, desde el momento en que un usuario verifique su código en SVN y hasta que obtengamos el resultado de la prueba de automatización, todo estará automatizado.postbuild UIAutomation script no se ejecuta en jenkins

Jenkins está instalado en mi máquina local y se ejecuta en localhost.
Ahora he automatizado el proceso de compilación a través de jenkins y en el otro extremo tengo listo mi script de shell que ejecutará UIAutomation scripts de Java en el resultado de compilación.
Cuando uso mi script de shell como acción posterior a la compilación, obtengo un error al ejecutar el comando del instrumento (escrito dentro del script del shell) pero si ejecuto este script manualmente a través del terminal, funciona bien.

instruments[64703:60f] -[NSAlert alertWithError:] called with nil NSError. A generic error message will be displayed, but the user deserves better. 
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. Mon Feb 6 13:15:20 inpunml310743 instruments[64703] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged. 2012-02-06 13:15:20.179 instruments[64703:60f] Recording cancelled : At least one target failed to launch; aborting run Instruments Trace Error : Failed to start trace. Build step 'Execute shell' marked build as failure Finished: FAILURE 

Luego probé este comando con sudo luego me siguiente error sudo: sin TTY presente y hay un programa askpass especifica

Por favor, quisiera saber cómo puedo ejecutar estos comandos éxito, sólo que esta paso queda en mi tarea.

+0

¿El Jenkins ejecuta como un servicio en su máquina? Si es así, ¿qué usuario se usa para ejecutar el servicio? – ingorichter

+0

está utilizando la cuenta compartida en mac, cuando instalamos el paquete no da la opción de seleccionar la ubicación/usuario e instalarlo en la carpeta compartida. – vikas

+3

Jenkins se está ejecutando como daemon y, por lo tanto, no se le permite conectarse al servidor de Windows. Más información aquí https://developer.apple.com/library/mac/#technotes/tn2083/_index.html. – ingorichter

Respuesta

1

Lo sentimos - no tiene tiempo para poner una respuesta completa ahora, se actualizará más tarde ....

Esto es posible si se ejecuta como una aplicación de Jenkins usuario en lugar de como un demonio - esto podría ser útil (https://github.com/stisti/jenkins-app) No lo probé, pero parece que debería funcionar - Bajé por otra ruta configurando un usuario que siempre inició sesión, que ejecutó jenkins desde un script de inicio de sesión, eso significaba que tenía que volver a instalar jenkins pero administrado para ponerlo en marcha ... palabra de advertencia de alguien que ha pasado por eso, ¿está usando instrumentos para pruebas automatizadas? Si es así, tendrás que hacer alguna transformación en la salida para que se muestre en Jenkins.

0

Tenemos una instancia de Jenkins Linux que se basa en un esclavo Mac a través de SSH. Un requisito interesante que notamos con este error es que el usuario de compilación en el esclavo debe haber iniciado sesión en la consola para que todo funcione correctamente.

Además, tuvimos que hacer que el usuario de compilación sea un administrador, los permisos de desarrollador no fueron suficientes.

Ver más información aquí:

UIAutomation : Failed to authorize rights with status: -60007

3

Jenkins por defecto se instala como un LaunchDaemon, lo que significa que no tiene permisos suficientes para poner en marcha WindowsServer.

Tendrá que configurarlo como un LaunchAgent:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist 
sudo mv /Library/LaunchDaemons/org.jenkins-ci.plist /Library/LaunchAgents/org.jenkins-ci.plist 

Luego está registrado como Jenkins y mantener una sesión abierta.

Si no conoce la contraseña Jenkins se puede cambiar con:

sudo passwd jenkins 
Cuestiones relacionadas