djUnitでテスト実行時のエラー
2007/06/14
カバレッジ計測をしようとして、djUnitをインストールした。
eclipse3.2.1 djUnitはSoftware Updateからインストールした。
テスト実行時に、エラーが発生した。
ずらずら Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassReader.accept(Lorg/objectweb/asm/ClassVisitor;I)V at jp.co.dgic.testing.common.AsmClassModifier.getModifiedClass(AsmClassModifier.java:51) ... 21 more java.lang.Error: djUnit class load error (Class : hogehoge.HogeTest) at jp.co.dgic.testing.common.DJUnitClassLoader.findClass(DJUnitClassLoader.java:59) ずらずら
よく理解せずに対策
プロジェクトのJava Build Pathの設定で、LibrariesタブのAdd External Jarsから
plugins/jp.co.dgic.eclipse.jdt.djunit_0.8.2/lib/asm-3.0.jar を指定して追加する。Order and Exportタブでasm-3.0.jarの順番を1番上にする。
恥かしいくらいアドホックですが、これでテストできるようになりました。
プラグインで読み込まれるべきクラスより先に互換性のない同じクラス(古い物)が、別のクラスから使われていたのかもしれません。
依存するライブラリが多すぎて、調べる気が起きません。。。
助かりました。
ありがとうございました。
→当方では、Spring のために通しているライブラリ (asm-2.2.3.jar) のせいかなと思い、asm-3.1.jar を通しておきました
いえいえ。うちも、Springを使っていたので、多分同じ原因だったのでしょうね。役に立てていただいたようで、よかったです。