私が作業しているプロジェクトのSWTとSwingの単体テストを探しています。私がEclipseから実行している限り、テストは正常に実行されます。ヘッドレス環境で単体テストのSWTとSwingアプリケーションに最も簡単な方法は?
ハドソン環境でそれらを実行するとすぐに、ハドソンはヘッドレスモードでテストを実行します。
これを行う最善の方法は何ですか?オープンソースのソリューションは、(プロジェクトはオープンソースなので)ご了承ください。
私が作業しているプロジェクトのSWTとSwingの単体テストを探しています。私がEclipseから実行している限り、テストは正常に実行されます。ヘッドレス環境で単体テストのSWTとSwingアプリケーションに最も簡単な方法は?
ハドソン環境でそれらを実行するとすぐに、ハドソンはヘッドレスモードでテストを実行します。
これを行う最善の方法は何ですか?オープンソースのソリューションは、(プロジェクトはオープンソースなので)ご了承ください。
Xvfb(X仮想フレームバッファ、メモリ内のすべてのグラフィカル操作を実行するX11サーバー)を実行すると正常に動作します。
しかし、Xvnc用のHudsonのプラグインを使用する別の解決策があります。単純にプラグインをインストールして、ジョブ設定画面でチェックボックスをチェックしてください。
alt text http://www.justinedelson.com/blog/wp-content/uploads/xvnc_box.jpg
ハドソンは、自動的にXvncセッションを起動し、適切な値にDISPLAY環境変数を設定して、ときに、セッションをシャットダウンしますビルドは完了です。これがXvfbメソッドより優れている利点の1つは、複数のSwing/SWTプロジェクトを同時に構築する場合、各ビルドにはそれぞれ独自のXセッションがあることです。これはまったく問題ではないかもしれませんが、良いアイデアのようです。
このプラグインを使用する前に、明らかにXvncがインストールされている必要があります。あまり明白ではないが(賢明だが)、パスワードを設定する必要があるということもある。
$ vncpassword
これは、Hudsonが実行する同じユーザーとして実行する必要があります。
SWTについてはわかりませんが、スイングではできません。可視に設定されていない場合でも、ウィンドウ(JFrame、JDialogなど)のインスタンス化は、ヘッドレスモード(JDK 5)で爆発します。私たちが行ったことは、ヘッドレスモードで実行されておらず、実際のウィンドウシステムが実際にインストールされていない状態でウィンドウを提供するためにXvfbをインストールしました。
Abbot Java GUI Testing FrameworkとSWTbotをお試しください。少なくともSWTbot should be able to do it。
いずれもヘッドレスモードを提供していない場合は、this blog postがテスト用のUIを取り除く方法を教えてくれるかもしれません。
スイングを使用することで、コンポーネントツリーが上部にウィンドウなしで作成できるように、物事を整理する傾向があります。これを行うことで単体テストでJPanelを作成し、これをトップレベルのコンポーネントとして使用することができます。フォーカスや、通常の動作のためのフレームの作成に関係するロジックなど、テストできないものがありますが、大多数をテストできます。
あなたはヘッドレスに行くかどうかの人生を容易にするためにFESTライブラリに見てみたいことがあります、それは非常によさそうだ:http://fest.easytesting.org/swing/wiki/pmwiki.php
私はそれに何が起こったのかわからない、前にここにこの投稿を確信していました。
Cacioでは、スイングアプリをヘッドレスで実行できます。
http://rkennke.wordpress.com/2011/10/17/cacio-for-ui-testing/
これが動作する場合あなたはジェンキンスCI環境でテストを実行するための https://github.com/jboss-reddeer/reddeer
•サポート(ハドソンのような)
RedDeerテストフレームワークを試すことができ、これはneatestトリックであるI何年も前に見たよ! –
+1私のために働く:-) –