S2JUnit4をmavenで実行する際の注意点
仕事でJUnitを書いたのは1年目以来でしょうか。(現在8年目。。)
ちょっと時間に余裕ができたので久々に書いてみました。
テスト対象はパラメータで渡した値を条件にDBからレコードを取得するメソッド。
ってことで、↓を参考にExcelでテストデータを用意し自動読み込みするようにして、境界値テストとして取得できるケースとできないケースを計5ケースほど書きました。
Seasar - DI Container with AOP
S2Unit
ローカルでの実行は無事グリーンになり、意気揚々とコミットしてJenkinsさんからテスト環境へビルド/デプロイ&テスト!
・・・
orz..
取得できるケースだけ失敗してるからテストデータが読み込めていない模様。
サンプルのようにテストケースクラスと同フォルダにデータも置いていたんですが、↓のサイトの通りでclasses側にデータがコピーされないせいみたいです。
ってことで、/src/test/resources配下に置き換えて再挑戦したところ、うまくいきました。
ただ、/src/test/resources配下にズラーっと並ぶのが嫌だったので、s2junit4.diconを以下のようにしてテストケースクラス毎にフォルダを分けるようにしました。
<component class="org.seasar.framework.unit.impl.TestDataPreparerImpl"> <initMethod name="addTestDataXlsPath"> <arg> "data/" + context.testClassShortName + "/" + context.testMethodName + ".xls" </arg> </initMethod> <initMethod name="addTestDataXlsPath"> <arg> "data/" + context.testClassShortName + "/common.xls" </arg> </initMethod> </component>
ちなみに現在のカバレッジは0.8%・・レガシーです\(^o^)/
目指せ1%!