Home > しらべる > Seasar2でユニットテスト用にDataSourceを切り替える

Seasar2でユニットテスト用にDataSourceを切り替える

  • Posted by: memorycraft
  • 2008年11月17日 23:41
  • しらべる

S2UnitやS2jUnit4などでSeasarのユニットテストを行う際、エクセルファイルなどを使ってテスト開始前にDBに初期データを入れる機能をよく使います。そのとき、場合によってはユニットテスト(UT)用DBと結合テスト(CT)用のDBを分ける必要がでてきます。それを対処したときのメモです。

seasar2の環境変数設定ファイルである、env.txt, env_ut.txtによって、実行中の環境によって環境変数#Envがut, ct などに切り替わります。これを利用してs2container.diconではdeployモードを切り替えています。

これと同じようにデータソースをut環境で切り替える場合には以下のようにします。

jdbc.dicon

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" 
	"http://www.seasar.org/dtd/components24.dtd">
<components>
	<include condition="#ENV == 'ut'" path="jdbc_ut.dicon"/>
	<include condition="#ENV == 'ct'" path="jdbc_ct.dicon"/>
	<include condition="#ENV != 'ut' and #ENV != 'ct'" path="jdbc_ct.dicon"/>
</components>

jdbc_ct.dicon と jdbc_ut.diconには それぞれCT、UT用のjdbc.diconの内容を定義すればいいわけです。

追記:
いい情報を教えていただきました。ファイル名だけで勝手に切り替わるそうです。

ひが 2008年11月26日 13:07


jdbc.diconで切り替えなくても、
jdbc_環境名.diconという名前で用意しておけば、
環境名に一致するものがあれば自動的に読み込まれます。

一般的には、本番用にjdbc.dicon、
ut用にjdbc_ut.dicon、
ct用にjdbc_ct.dicon
と定義しておけば、と
書くだけで大丈夫です。

Trackbacks:0

TrackBack URL for this entry
http://www.memorycraft.jp/mt-tb.cgi/81
Listed below are links to weblogs that reference
Seasar2でユニットテスト用にDataSourceを切り替える from メモリークラフト

Comments:2

Comment Form
ひが 2008年11月26日 13:07

jdbc.diconで切り替えなくても、
jdbc_環境名.diconという名前で用意しておけば、
環境名に一致するものがあれば自動的に読み込まれます。

一般的には、本番用にjdbc.dicon、
ut用にjdbc_ut.dicon、
ct用にjdbc_ct.dicon
と定義しておけば、と
書くだけで大丈夫です。

memorycraft 2008年11月26日 13:17

コメントありがとうございます。
既にそんな便利機能があったんですね。
いいことききました。ありがとうございます!

Home > しらべる > Seasar2でユニットテスト用にDataSourceを切り替える

ページの先頭へ戻る