2012-05-02 16 views
7

Desde hace un tiempo he estado tratando de averiguar cómo ejecutar las pruebas de UIAutomation de Jenkins: cada vez que ejecuto la compilación, funciona bien, luego ejecuta el comando de mis instrumentos (usando el mismo comando como se detalla aquí (Can Instruments be used using the command line?) y jenkins simplemente cuelga, bueno, toda la máquina lo hace, y cuando miro el monitor de actividad puedo ver un proceso de instrumentos usando 2gb de memoria.Ejecutando pruebas de iOS UIAutomation de Jenkins

Cuando configuré jenkins, lo ejecuté originalmente como de un usuario oculto, esto presentaba algunos desafíos con jenkins como deamon y sin poder acceder al servidor de ventanas. Luego decidí cambiar la cuenta de jenkins a un usuario normal, inicié sesión y ejecuté instrumentos desde la línea de comando, esto funcionó bien ... pero todavía no tuve suerte con ejecutarlo desde jen parientes

he puesto los Jenkins cuenta como desarrollador - No Admin aunque

Por favor, hágamelo saber si hay algo más que he podido probar, o si alguien tiene esto que funciona con éxito su orientación sería muy apreciado - Gracias

+0

¿Cómo se ejecuta (es decir, se inicia) Jenkins? –

+0

Se ejecuta como un demonio, por lo que se carga en el inicio; si necesito detenerlo o reiniciarlo, uso launchctl – ChrisH

Respuesta

1

Así que si lo ejecuta como daemon, lo primero que debe hacer es verificar qué sucede si ejecuta Jenkins en primer plano. La forma más sencilla de hacerlo es con el comando java -jar jenkins.war [other options] (see this document).

+0

Gracias brillantes, todo funciona bien ahora. ¿Hay alguna forma más elegante de iniciar jenkins como este? – ChrisH

+1

Lo único que puedo pensar es ponerlo en un script y ejecutar ese script desde un enlace de inicio de sesión. –

+1

Luego está https://github.com/stisti/jenkins-app – sti

0

Quizás pueda usar este https://github.com/houlianpi/robot4ios.

Luego, en Jenkins ejecutar shell:

sh setup.sh 
sh runTests.sh ./sample/alltests.js "/Users/komejun/Library/Application Support/iPhone Simulator/5.0/Applications/1622F505-8C07-47E0-B0F0-3A125A88B329/Recipes.app/" 

y el informe será crear automáticamente en ./ynmsk-report/test.xml

+0

Eso suena interesante, ¿robot4ios administrará la configuración/desmontaje entre las pruebas también? ¿Debo entender que la salida xml es compatible con jenkins para que la salida se pueda visualizar? – ChrisH

+0

sí, todo, robot4ios usa yuitest.so – houlianpi

+1

ynm3k se ha actualizado en otra bifurcación https://github.com/douban/ynm3k, que reemplazó runTests.sh con test_runner/run.No estoy seguro de si la muestra en el proyecto antiguo todavía podría funcionar. – firebear

4

Jenkins en OS X se inicia a partir de un guión launchd y se ejecutarán como "daemon" por defecto. Lo que hay que hacer es cambiar al usuario en el script lanzado.

Primero, obtenga a Jenkins listo para cerrar (en "Administrar Jenkins" en la GUI).

Luego descargar el trabajo de launchd, así:

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

luego editar la propiedad "nombre de usuario" en el plist launchd, mediante el cual el usuario desea ejecutar Jenkins. También hay una propiedad GroupName, que es posible que desee/necesite ajustar de acuerdo con su grupo de usuarios.

Por último, vuelva a cargar con Jenkins:

$ sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist 

Espero que ayude!

+0

Esto funcionó perfectamente para mí. De forma predeterminada, GroupName se configuró en daemon y se bloqueó el simulador ios – maschall

+0

. Seguimos esta solución y funcionó pero una cosa a tener en cuenta: parece que en las versiones más nuevas de xcode debe eliminar el valor de SessionCreate y de su organización .jenkins-ci.plist ver aquí para más detalles: http://www.cimgf.com/2015/05/26/setting-up-jenkins-ci-on-a-mac-2/ – Daveloper87

Cuestiones relacionadas