JenkinsでFEST-Swingを実行する
FEST-SwingはJava Swingのテストフレームワークです。
FEST-Swing
Seleniumっぽい感じでSwingをテスト出来るフレームワークです。
で、これをJenkinsでCIしたいわけですが、Seleniumと同じようにウィンドウが必要になります。
いろいろやって、上手く動くところまで出来たので、ここに残しておきます。
Windowsの場合
FESTのドキュメントにあるんだけど、なんかようわからんってことで、以下方法で出来たのでとりあえずはこれでよかった。
- 単純にJenkinsが動いてるサーバにログインし続ける。
- サーバに繋がってるディスプレイでもいいし
- リモートデスクトップでもOK
ただしログアウトしたらテストが失敗するので、常に開いた状態じゃないとだめ。
StackOverFlowあたりで「セキュリティについては気にすんなw」みたいな英語の回答があったw
Linux/Debian などの場合
今回はDebian系のOSでやってたんだけど、とても簡単に出来ることがわかった。
まずすごく参考になったのが、この記事
JenkinsでFEST-Swing - やざわラボブログ
この方法はたぶんGUI無しのときのやり方と思う。
Debian派生のOSでGUI有りでインストールしていろいろして出来たので以下に書く。
Debian GUIでインストールした時の話
まずGUI有りの場合に何も設定しないで実行すると、FESTが「X11変数(DISPLAY)が設定がされていません」的なエラーで失敗します。
ここは素直にDISPLAYを環境変数に設定してあげましょう。
ちなみに私の環境だとコンソールでecho $DISPLAY
したら:0.0
と出ました。
なんで設定されてるのにうまく動かんのじゃとは思ったけど、EnvInject Pluginという環境変数をJOBごとに設定できるプラグインで設定してあげた。
ちょっとJenkinsが手元には無いので、この画像のProperties Contentに、DISPLAY=:0.0
と設定したら動いた!!!
ということで、Swingアプリって今あんまり作ってる人いないのかもしれないけど、レガシーなアプリをCIしたい時とかに参考になればと思います。
JavaFXで作り直させてくれぇぇぇぇぇぇぇ!!!!!!
おわり