読者です 読者をやめる 読者になる 読者になる

Pluginのテストを自動化するには(その4-2:eclipse-Automated-Testsのtest.xmlを見てみる)

今日はeclipse-Automated-Testsのtest.xmlを見てみます。
runtestsスクリプトでテストするターゲットを指定します。例として『ui』を指定した場合のスクリプトを見てみると
423行目から425行目にかかれ手います。

	<target name="ui">
		<runTests testPlugin="org.eclipse.ui.tests" />
	</target>

はい。runTestsってタスクは何?って思いますよね。test.xmlの中でを使って宣言されています。って何って思った方はリンク先をどーぞ。要するにもタスクの宣言の一種でで引数を、タグでかこわれている部分を順次実行するというものですね。
runTestsマクロで何をやっているかというと、ざっといっちゃえばこのマクロ直下のjunitターゲットやperformanceターゲットへ処理を振ってます。この辺を見てみるとperformanceのテストをするためには、runtestsに-Dtest.target=performanceを設定すればいいって言eclipse-junit-tests-M20071023-1652うのもこのあたりで分かります。(readme.htmlにも書かれていますが。)Antスクリプト内で定義されているプロパティはJVMのシステムプロパティに設定された場合は上書きされます。
Cloudscapeがあると何がうれしいのかまでは追っかけません。
さて、junitターゲットとperformanceターゲットで何が違うかというとほとんど何も違いません。setupターゲットの後、ターゲットのテストプラグイン内のtest.xmlへ処理を移譲し、結果を収集しているだけです。要するに、テストプラグインの中のtest.xmlを見なきゃ実際のテストがどう動いているかわからんとです。(ちなみにsetupターゲットではSDKを解凍し、テスト用のプラグイン*1を解凍したSDKのEclipseへコピーし、CVS用の設定をするターゲットを呼び出しています。)
と言う訳で、テストプラグインの中のtest.xmlを見てみましょう。
uiのテストプラグインの中を見てみようかと思ったんですが、やっぱり説明しずらいので、osgiでご勘弁。

osgiのテストプラグインをのぞいてみる

osgiのテストプラグインですが、『eclipse-junit-tests-M20071023-1652.zip』の中の『/eclipse/plugins/org.eclipse.osgi.test_3.3.0』がそれになります。なので、この中のtest.xmlを見てみましょう。
ざっと眺めてみるとlibrary-fileというプロパティに設定されている『${eclipse-home}/plugins/org.eclipse.test/library.xml』のcore-testターゲットに処理が移譲されているというのがなんとなく見えるかと。ぉぃ*2そうなんす。このtest.xmlをコピって自分のプロジェクト用にちょちょっといじると自分のプロジェクトでも使えたりします。
後は本体プラグインとテストプラグインのビルドが自動化できていればきっとテストまで自動化できる雰囲気を感じていただけたんじゃないかと思いマス。
ということで、明日はビルドの自動化についてちょちょっと触れてみますよ。

*1:Eclipse-test-frameworkのプラグイン含む

*2:ここで指定されているcore-testターゲットはUI(ワークベンチ)を使わない場合のターゲットで、uiを使う場合はui-testターゲットを使います。