シンプルなS2JUnit4

S2JUnit4ServletJTAEJB3APIに依存しているのですが、依存しなくても動くようにしようかなぁと思います。(もちろん、この場合、S2JUnit4の売りのひとつである自動トランザクション開始・ロールバックの機能は実行されません。イメージとしては機能限定のシンプルモードといった感じですね。)

シンプルモードで動かすには次のようにs2junit4.diconを設定するだけでOKにします。ポイントはcontextコンポーネントのクラスがSimpleInternalTestContextであるということです

s2junit4.dicon
<components namespace="s2junit4">
	
	<component name="context" class="org.seasar.framework.unit.impl.SimpleInternalTestContext"/>

	<component class="org.seasar.framework.unit.impl.ConfigFileIncluderImpl">
		<initMethod name="addConfigFile">
			<arg>context.testClassShortName + ".dicon"</arg>
		</initMethod>
	</component>
		
</components>

テストクラスはこんな感じ。

テストクラス
import org.junit.runner.RunWith;
import org.seasar.framework.unit.Seasar2;

@RunWith(Seasar2.class)
public class HogeTest {
	public void test() throws Exception {
		System.out.println("JavaEEのjarがなくても動くよ");
	}
}

実行に必要なjarはこれら(ServletEJB3JTAに関するjarが含まれていないことに注目)

aopalliance-1.0.jar
easymock-2.2.jar
javassist-3.4.ga.jar
junit-4.3.1.jar
log4j-1.2.13.jar
ognl-2.6.7.jar
s2-extension-2.4.13-rc2-SNAPSHOT.jar 未リリース
s2-framework-2.4.13-rc2-SNAPSHOT.jar 未リリース
s2-tiger-2.4.13-rc2-SNAPSHOT.jar     未リリース
commons-logging-1.1.jar

実行するとこうなります。

実行結果
DEBUG 2007-05-17 00:37:45,187 [main] ファイル(env_ut.txt)がないため環境変数#Envに値(ut)が設定されました
DEBUG 2007-05-17 00:37:45,328 [main] S2Containerを作成します。path=s2junit4.dicon
DEBUG 2007-05-17 00:37:45,703 [main] S2Containerを作成しました。path=s2junit4.dicon
JavaEEのjarがなくても動くよ

ServletEJB3はいらないけど、JTAは欲しいという場合がありそうなのですが、その場合はSimpleInternalTestContextのプロパティjtaEnabledにtrueをセットしてもらうことにしようと思っています。(もちろん、この場合JTAのjarが必要になります。)
で、JavaEEなjarへの依存がそもそもアプリケーションで必要だったり気にならない方に対しては今までどおりの設定でもちゃんと動くようにします。