2012-02-06 19 views
13

私は何をしようとしていますエンドツーエンドの自動化iOSプロジェクト私の目的は、の連続的な統合のプロセスをポストビルドアクションとしてUIAutomationスクリプトを使用して自動化することです。 SVNでコードをチェックしてからオートメーションのテスト結果が出るまで、すべてが自動化されます。postbuildジーンズではUIAutomationスクリプトが実行されていません

Jenkinsは、ローカルマシンにインストールされ、localhostで実行されています。
私はjenkinsで自動プロセスを構築しましたが、もう片方ではシェルスクリプトを用意して、ビルド出力にUIAutomation Javaスクリプトを実行します。
ポストビルドアクションとしてシェルスクリプトを使用すると、インストルメントコマンド(シェルスクリプト内で書かれたもの)を実行する際にエラーが発生しますが、このスクリプトをターミナル経由で手動で実行すると正常に動作します。何のtty存在していないaskpassパッケージプログラムは、私はこれらのコマンドが正常に実行できる方法を知ってみましょうこれだけしてください

を指定しない:

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で次のコマンドを試してみましたステップは私の仕事に残っています。

+0

ジェンキンスさんは、マシン上のサービスとして実行していますか?その場合、サービスを実行するためにどのユーザーが使用されますか? – ingorichter

+0

Mac上で共有アカウントを使用していますが、パッケージをインストールする際に、場所/ユーザーを選択して共有フォルダにインストールするオプションはありません。 – vikas

+3

Jenkinsはデーモンとして実行されているため、ウィンドウサーバーに接続することはできません。詳細はhttps://developer.apple.com/library/mac/#technotes/tn2083/_index.htmlをご覧ください。 – ingorichter

答えて

1

申し訳ありません - 後で更新します、今完全な答えを置くために時間を持っていない....

ユーザーアプリとしてではなく、デーモンとしてジェンキンスを実行する場合、これは可能である - これは便利になるかもしれません(https://github.com/stisti/jenkins-app)私はそれを試していないが動作するはずだ - 私はログインスクリプトからジェンキンを実行した、常にログインしているユーザーを設定する別のルートをたどりました。それを取得し、実行している...それを介して行っている誰かから警告の言葉、あなたは自動化されたテストのための楽器を使用していますか?もしそうなら、あなたはジェンキンスに表示されるように、出力にある変換を行う必要があります。

0

私たちには、SSH経由でMacスレーブに構築されたJenkins Linuxインスタンスがあります。このエラーで気づいた興味深い要件の1つは、スレーブ上のビルド・ユーザーがすべてが正常に動作するためにコンソールにログインする必要があるということです。

さらに、ビルドユーザーを管理者にする必要がありました。開発者権限が不十分でした。

ここで詳細を参照してください:デフォルトで

UIAutomation : Failed to authorize rights with status: -60007

3

ジェンキンスは、WindowsServerを起動するために十分な権限を持っている意味LaunchDaemon、としてインストールされます。

あなたはLaunchAgentとしてそれを設定する必要があります:

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

その後ジェンキンスとしてログインし、開いているセッションを維持します。

あなたはジェンキンスのパスワードがわからない場合はあなたがそれを変更することができます。

sudo passwd jenkins 
関連する問題