2012-02-06 16 views
13

Próbuję zrobić End-to-End automatyzacji dla Projekt iOS. Moim celem jest zautomatyzowanie procesu ciągłej integracji z dołączaniem skryptów UIAutomation jako akcji budowania postów. Więc od czasu, gdy użytkownik sprawdzi swój kod w SVN i dopóki nie otrzymamy wyniku testu automatyzacji, wszystko zostanie zautomatyzowane.PostgreSQL UIAutomation skrypt nie działa w jenkins

Jenkins jest zainstalowany na moim komputerze lokalnym i działa pod numerem localhost.
Teraz mam zautomatyzowany proces kompilacji przez jenkins, a na drugim końcu mam gotowy skrypt powłoki, który uruchomi UIAutomation skryptów java na wyjściu kompilacji.
Kiedy używam mojego skryptu powłoki jako działania budowania postu, otrzymuję błąd w uruchomieniu polecenia instrumentu (napisanego wewnątrz skryptu powłoki), ale jeśli uruchomię ten skrypt ręcznie przez terminal, to działa dobrze.

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 

następnie próbowałem tego polecenia z sudo potem mam następujący błąd sudo: brak obecnie tty i bez programu askpass określony

Proszę dać mi znać, jak mogę uruchomić te polecenia sukces, tylko to krok jest w moim zadaniu.

+0

Czy Jenkins działać jako usługa na komputerze? Jeśli tak, jaki użytkownik jest używany do uruchomienia usługi? – ingorichter

+0

używa konta współdzielonego na komputerze Mac, gdy instalujemy pakiet, nie daje opcji wyboru lokalizacji/użytkownika i instalowania go w udostępnionym folderze. – vikas

+3

Jenkins działa jako demon i dlatego nie może się połączyć z serwerem Windows. Więcej informacji tutaj: https://developer.apple.com/library/mac/#technotes/tn2083/_index.html. – ingorichter

Odpowiedz

1

Niestety - nie ma czasu, aby umieścić pełną odpowiedź teraz, zaktualizuje później ....

Jest to możliwe po uruchomieniu Jenkins jako aplikacja użytkownika, a nie jako demona - to może się przydać (https://github.com/stisti/jenkins-app) Nie próbowałem go, ale wygląda na to, że powinien działać - poszedłem inną trasą konfigurując zawsze zalogowanego użytkownika, który uruchamiał jenkinsa ze skryptu logowania, to znaczy, że musiałem ponownie zainstalować jenkins ale udało mi się aby go uruchomić i ... ostrzec kogoś, kto przez to przeszedł, czy używasz przyrządów do automatycznego testowania? Jeśli tak, musisz wykonać transformację na wyjściu, aby była wyświetlana w Jenkins.

0

Mamy instancję Linuksa Jenkinsa, która buduje Macintosha na SSH. Jednym z interesujących wymagań, które zauważyliśmy z tym błędem, jest to, że użytkownik zbudowany na slave musi być zalogowany do konsoli, aby wszystko działało poprawnie.

Ponadto musieliśmy sprawić, aby użytkownik był administratorem, uprawnienia programisty były niewystarczające.

Zobacz więcej informacji tutaj:

UIAutomation : Failed to authorize rights with status: -60007

3

Jenkins domyślnie instaluje LaunchDaemon, co oznacza, że ​​nie ma wystarczających uprawnień do uruchomienia WindowsServer.

Musisz skonfigurować go jako LaunchAgent:

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

Następnie zalogować się jako Jenkins i trzymać sesję otwartą.

Jeśli nie znasz hasła Jenkins można go zmienić z:

sudo passwd jenkins 
Powiązane problemy