JenkinsのXvnc Pluginの使い方をまとめます。
Xvnc PluginはGUIアプリケーションのテストに必要なプラグインです。
SlaveはUbuntu 14.04です。
Table of Contents
1 Xvnc Pluginとは
VNCサーバを立ち上げてからテストを実行するプラグインです。
本プラグインはGUIアプリケーションのテストを可能にする為、極めて有用です。
テスト完了時のスクリーンショット保存をサポートします。
2 Xvnc Pluginのインストール方法
Jenkinsのプラグイン制御画面からインストールします。
Jenkinsの管理 -> プラグインの管理 -> 利用可能
3 vncserverのパスワード設定
テスト実行環境でvncserverが必要です。
$ sudo apt-get install -y vnc4server
Xvnc Pluginはテスト実行環境のローカルユーザとしてvncserverを立ち上げます。
その際、vncserverのパスワードファイルが設定されていることを前提としており、テスト実行環境でvncserverのパスワード作成が必要です。
$ vncserver # password $ vncserver -kill :1 $ rm -f ${file}
4 システムの設定
システムの設定でvncserverのオプションとディスプレイ番号を設定します。
Command Line | vncserverのコマンドとオプション |
Minimum display number | ディスプレイ番号の最小値 |
Maximum display number | ディスプレイ番号の最大値 |
Command Lineを空にした場合、以下のコマンドが実行されます。
/usr/bin/vncserver $DISPLAY_NUMBER -localhost -nolisten tcp
Command Lineに$DISPLAY_NUMBERを設定しておくと、Xvnc Pluginはディスプレイ番号をMinimum display numberとMaximum display numberの間からランダムに設定します。
SDLアプリケーションをテストしようとしたところ -nolisten tcpがついているとSDL_Initが上手く動作しませんでした(Failed to connect to the Mir Server)。
そこで以下の設定を用いています。
/usr/bin/vncserver $DISPLAY_NUMBER -localhost
ディスプレイ番号を固定しようと、Minimum display numberとMaximum display numberの値を同じにすると使用可能なディスプレイ番号がないと判定される場合があるようです。
できる限り広い範囲にMinimum display numberとMaximum display numberを設定したほうが良いです。
動的に生成されたディスプレイ番号は環境変数DISPLAYに設定されます。
Vnc Recorder Pluginは$DISPLAYでディスプレイ番号を参照できます。
$ echo $DISPLAY :50
5 ジョブの設定
ジョブの設定のビルド環境にてRun Xvnc during buildにチェックを入れます。
Run Xvnc during build | vncserverを実行する |
Take Sceenshot Upon Build Completion | スクリーンショットを撮る |
Create a dedicated Xauthority file per build | ビルド毎の.Xauthorityを保存する |
スクリーンショットを撮るにはテスト実行環境にImageMagickのimportコマンド必要です。
$ sudo apt-get install -y imagemagick
6 実行
実行するとコンソール出力にvncserverの起動とスクリーンショットの保存を確認できます。