明日から本気出す

ただの備忘録

S2JUnit4をmavenで実行する際の注意点

仕事でJUnitを書いたのは1年目以来でしょうか。(現在8年目。。)
ちょっと時間に余裕ができたので久々に書いてみました。


テスト対象はパラメータで渡した値を条件にDBからレコードを取得するメソッド。

ってことで、↓を参考にExcelでテストデータを用意し自動読み込みするようにして、境界値テストとして取得できるケースとできないケースを計5ケースほど書きました。

Seasar - DI Container with AOP
S2Unit

ローカルでの実行は無事グリーンになり、意気揚々とコミットしてJenkinsさんからテスト環境へビルド/デプロイ&テスト!

・・・

orz..
取得できるケースだけ失敗してるからテストデータが読み込めていない模様。
サンプルのようにテストケースクラスと同フォルダにデータも置いていたんですが、↓のサイトの通りでclasses側にデータがコピーされないせいみたいです。

Maven2でのリソースファイルの取り扱い

ってことで、/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%!