JenkinsでFEST-Swingを実行する

FEST-SwingはJava Swingのテストフレームワークです。
FEST-Swing

Seleniumっぽい感じでSwingをテスト出来るフレームワークです。

で、これをJenkinsでCIしたいわけですが、Seleniumと同じようにウィンドウが必要になります。
いろいろやって、上手く動くところまで出来たので、ここに残しておきます。

Windowsの場合

FESTのドキュメントにあるんだけど、なんかようわからんってことで、以下方法で出来たのでとりあえずはこれでよかった。

  • 単純にJenkinsが動いてるサーバにログインし続ける。

ただしログアウトしたらテストが失敗するので、常に開いた状態じゃないとだめ。
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と設定したら動いた!!! Properties Content


ということで、Swingアプリって今あんまり作ってる人いないのかもしれないけど、レガシーなアプリをCIしたい時とかに参考になればと思います。

JavaFXで作り直させてくれぇぇぇぇぇぇぇ!!!!!!

おわり