GUI+DBのユニットテスト④ Java

前回の続きです。
作成したユニットテストをHudsonで実行してみます。


Hudsonをサービスで実行している場合、GUIユニットテストをHudson上で実行する事ができません。
サービスのプロパティから「デスクトップとの対話をサービスに許可」をONにしておきます。





以前に作ったbuild.xmlに合わせて、
プロジェクトのディレクトリ構成はこんな感じになっています。

GUI+DbUnitSample
├─bin
├─lib
│ ├─commons-dbutils-1.3.jar
│ ├─commons-lang-2.5.jar
│ ├─beansbinding-1.2.1.jar
│  └─DbUnitSample.jar
├─src
│  └─sample
│    └─SampleFrame.java
├─testdata
│  └─SampleFrameTest
│    └─init.xls
├─testlib
│ ├─commons-collections-3.2.1.jar
│ ├─commons-dbcp-1.4.jar
│ ├─commons-pool-1.5.4.jar
│ ├─dbunit-2.4.7.jar
│ ├─h2-1.2.135.jar
│ ├─junit-4.8.2.jar
│ ├─poi-3.2-FINAL-20081019.jar
│ ├─poi-contrib-3.2-FINAL-20081019.jar
│ ├─poi-scratchpad-3.2-FINAL-20081019.jar
│ ├─slf4j-api-1.6.0.jar
│ ├─slf4j-ext-1.6.0.jar
│ ├─slf4j-migrator-1.6.0.jar
│  ├─slf4j-simple-1.6.0.jar
│  ├─TEST-DbUnitSample.jar
│  └─FEST-SwingLib
│      ├─fest-assert-1.2.jar
│      ├─fest-assert-1.2-sources.jar
│      ├─fest-reflect-1.2.jar
│      ├─fest-reflect-1.2-sources.jar
│      ├─fest-util-1.1.2.jar
│      ├─fest-util-1.1.2-sources.jar
│      ├─jcip-annotations-1.0.jar
│      └─jcip-annotations-1.0-sources.jar
└─testsrc
│  └─sample
│   ├─FrameTester.java
│   ├─GuiTestUtils.java
│    └─SampleFrameTest.java
└─dbcp.properties

新規ジョブを作成

以前に作ったジョブをコピーして作ります。



ジョブの設定を変更

基本的にコピーした設定をそのまま使います。
但し、SVNレポジトリURLやプロジェクトのルートフォルダ名は変更する必要があります。



build.xmlなどを置く

以前に作ったbuild.xml等をプロジェクト直下に置きます。


 build.properties
 build.xml
 codeAnalysis.properties
 codeAnalysis.xml
 coverage.properties
 coverage.xml


build.xml等は特に変更しなくてもイケルはずですが、
テスト/カバレッジ測定の除外クラスを変更したい場合は、
build.propertiesとcoverage.propertiesの定義を変更します。



Hudsonから実行してみる

実行方法は今までどおりです。





カバレッジも出力されています。
100%ですね☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ





FEST-Swingの公式ドキュメントを見るとJUnit拡張が提供されていて、
ユニットテストでエラーになった場合にスクリーショットを撮ることもできるみたいです。
時間が空いた時に試してみることにします。


Taking Screenshots of JUnit Test Failures
http://docs.codehaus.org/display/FEST/Taking+Screenshots+of+JUnit+Test+Failures