2012-02-06 11 views
13

Sto cercando di fare automazione end-to-end per un progetto iOS. Il mio obiettivo è automatizzare la procedura di integrazione continua con allegare gli script UIAutomation come azione post build. Quindi dal momento in cui un utente controlla il suo codice in SVN e finché non otteniamo il risultato del test dell'automazione, tutto sarà automatizzato.postbuild UIAutomation script non in esecuzione in jenkins

Jenkins è installato sul computer locale e in esecuzione su localhost.
Ora ho automatizzato il processo di compilazione tramite jenkins e all'altro capo ho già pronto lo script della shell che eseguirà gli script java UIAutomation sull'output di build.
Quando uso lo script della shell come azione post build, viene visualizzato errore nel comando di esecuzione dello strumento (scritto nello script di shell), ma se eseguo manualmente questo script tramite terminale, funziona correttamente.

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 

poi ho provato questo comando con sudo poi mi sono seguente errore sudo: nessuna tty presente e nessun programma askpass specificato

Si prega di farmi sapere come posso eseguire questi comandi di successo, solo che questa passaggio è lasciato nel mio compito.

+0

non Jenkins eseguito come un servizio sulla vostra macchina? In tal caso, quale utente è utilizzato per eseguire il servizio? – ingorichter

+0

utilizza l'account condiviso su mac, quando installiamo il pacchetto non offre l'opzione per selezionare la posizione/utente e installarlo sulla cartella condivisa. – vikas

+3

Jenkins è in esecuzione come daemon e pertanto non è autorizzato a connettersi al server della finestra. Maggiori informazioni qui https://developer.apple.com/library/mac/#technotes/tn2083/_index.html. – ingorichter

risposta

1

Siamo spiacenti - non ho tempo di mettere una risposta completa ora, aggiornerà più tardi ....

Questo è possibile se si esegue Jenkins come applicazione utente piuttosto che come un demone - questo potrebbe tornare utile (https://github.com/stisti/jenkins-app) Non l'ho provato, ma sembra che dovrebbe funzionare - Sono andato giù per un'altra strada, creando un utente sempre connesso, che usava jenkins da uno script di login, significava che dovevo reinstallare jenkins ma gestito per farlo funzionare ... parola di avvertimento da parte di qualcuno che è stato attraverso di esso, stai usando strumenti per test automatici? In tal caso, dovrai eseguire alcune trasformazioni sull'output in modo che vengano visualizzate in Jenkins.

0

Abbiamo un'istanza di Jenkins Linux che si basa su uno slave Mac su SSH. Un requisito interessante che abbiamo notato con questo errore è che l'utente di build sullo slave deve essere registrato nella console affinché tutto funzioni correttamente.

Inoltre, abbiamo dovuto creare un amministratore per l'amministratore, le autorizzazioni per lo sviluppatore erano insufficienti.

Visualizza maggiori informazioni qui:

UIAutomation : Failed to authorize rights with status: -60007

3

Jenkins installa di default come LaunchDaemon, che significa che ha autorizzazioni insufficienti per lanciare WindowsServer.

Avrete bisogno di configurarlo come LaunchAgent:

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

Poi login come Jenkins e mantenere una sessione aperta.

Se non si conosce la password Jenkins si può cambiare con:

sudo passwd jenkins 
Problemi correlati