めげずにデバッグ
ようやくまともにテストが実行されるようになった。やっぱり今日もはまったところがあったので備忘録として書いておく。(Mavenと関係ないところもあるけど)
- 意図していないVersionのライブラリがテストクラスパスに追加される
- Mavenの依存関係解決は、ライブラリが依存している他のライブラリについても解決してくれて非常にこれは便利なのだが、ある特定Versionでないと動かなくてテスト時に落ちていた。これはPOMでVersionを指定して解決。
- EJBException#getCause()でネスト例外が取得できずnullが返る
- テストが書かれていないテストクラスを実行しようとしてエラー
- ○○Testクラスをテスト対象としているのだが、@Testが一つもないとエラーとされちゃう。これはTestを書いてないただのサンプルコードなのでクラス名を変えて対応。
- org.junit.Assert#assertEquals(Object expected, Object actual)の挙動が異なる
Bug fix (1715326): assertEquals now compares all Numbers using their native implementation of equals. This assertion, which passed in 4.3, will now fail:
assertEquals(new Integer(1), new Long(1));
Non-integer Numbers (Floats, Doubles, BigDecimals, etc), which were compared incorrectly in 4.3, are now fixed.
http://junit.sourceforge.net/doc/ReleaseNotes4.4.html
結局のところ、はまったのはEclipse上とは異なるライブラリを使ってテストを実行しちゃったからのが大部分。
最初から、POMで定義したVersionのライブラリを使うようにしていれば良かったのだが、、、中途半端にMavenizedされた環境だったのでそこまでできず、今に至る。
ちなみに、テスト実行時のクラスパス情報は、mvnコマンドに-Xを付けてデバッグモードにして確認できます。