- 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
と定義しておけば、と
書くだけで大丈夫です。
