сценарий UIAutomation после сборки не работает в jenkins - PullRequest
13 голосов
/ 06 февраля 2012

Я пытаюсь сделать Комплексная автоматизация для проекта iOS . Моя цель - автоматизировать процесс непрерывной интеграции с добавлением UIAutomation скриптов в качестве действия после сборки. Таким образом, с момента, когда пользователь проверяет свой код в SVN, и до тех пор, пока мы не получим результаты теста автоматизации, все будет автоматизировано.

Jenkins установлен на моем локальном компьютере и работает на localhost.
Теперь у меня автоматизирован процесс сборки через jenkins, а на другом конце у меня есть готовый сценарий оболочки, который будет запускать UIAutomation java-сценарии при выводе сборки.
Когда я использую свой сценарий оболочки в качестве действия после сборки, я получаю ошибку при запуске команды инструмента (написанной внутри сценария оболочки), но если я запускаю этот сценарий вручную через терминал, то он работает нормально.

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

тогда я попробовал эту команду с sudo, тогда я получил следующую ошибку sudo: tty отсутствует и не задана программа askpass

Пожалуйста, дайте мне знать, как я могу выполнить эти команды успешно, только этот шаг остался в моей задаче.

Ответы [ 4 ]

3 голосов
/ 09 января 2014

Jenkins по умолчанию устанавливается как LaunchDaemon, что означает, что у него недостаточно разрешений для запуска WindowsServer.

Вам необходимо настроить его как LaunchAgent:

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

Затем войдите в систему как Jenkins и оставьте сеанс открытым.

Если вы не знаете пароль Jenkins, вы можете изменить его с помощью:

sudo passwd jenkins
2 голосов
/ 04 апреля 2012

Jenkins работает как демон и поэтому не имеет права подключаться к серверу окон.Больше информации здесь http://developer.apple.com/library/mac/#technotes/tn2083/_index.html.

1 голос
/ 06 февраля 2013

Извините - у вас нет времени, чтобы поставить полный ответ сейчас, обновлю позже ....

Это возможно, если вы запускаете jenkins как пользовательское приложение, а не как deamon - это может произойтиудобно (https://github.com/stisti/jenkins-app) Я не пробовал, но похоже, что он должен работать - я пошел другим путем, настраивая всегда входящего в систему пользователя, который запускал jenkins из сценария входа, это означало, что мне пришлось-установить jenkins, но ему удалось его запустить и запустить ... предупреждение от кого-то, кто прошел через это, используете ли вы инструменты для автоматического тестирования? Если это так, вам нужно будет выполнить некоторые преобразования в выводе, чтобы он отображался вДженкинс.

0 голосов
/ 26 февраля 2013

У нас есть экземпляр Jenkins Linux, который работает на подчиненном Mac по SSH. Одно интересное требование, которое мы заметили с этой ошибкой, состоит в том, что пользователь сборки на ведомом устройстве должен войти в консоль, чтобы все работало правильно.

Кроме того, мы должны были сделать пользователя сборки администратором, разрешения разработчика были недостаточны.

Подробнее здесь:

UIAutomation: не удалось авторизовать права со статусом: -60007

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...