djUnitでテスト実行時のエラー

カバレッジ計測をしようとして、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番上にする。

恥かしいくらいアドホックですが、これでテストできるようになりました。

プラグインで読み込まれるべきクラスより先に互換性のない同じクラス(古い物)が、別のクラスから使われていたのかもしれません。

依存するライブラリが多すぎて、調べる気が起きません。。。

2件のコメント

  • 助かりました。
    ありがとうございました。
     →当方では、Spring のために通しているライブラリ (asm-2.2.3.jar) のせいかなと思い、asm-3.1.jar を通しておきました

  • いえいえ。うちも、Springを使っていたので、多分同じ原因だったのでしょうね。役に立てていただいたようで、よかったです。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください