play framework + Java + Ebean + eclipseでJUnitテストが起動に失敗するときの対処法

現象:
play.db.ebean.Modelを継承したModelをテストする際に以下のメッセージがコンソールに出てエラーになる。

c.a.e.s.d.BeanDescriptorManager - Error in deployment

環境:

  • play framework 2.1.1
  • eclipse juno(4.2 RC2)

対処法:
VM引数にjavaagentを設定する.

  1. ebeanを公式(http://www.avaje.org/download.html)から適当な場所にダウンロード&&解凍
  2. テストのVM引数に-javaagent:/path/to/ebean-2.7.0-agent.jarを設定

f:id:ganr:20130517220902p:plain

3.実行すれば問題が解消されるはず。

参考:
http://blog.matthieuguillermin.fr/2012/03/unit-testing-tricks-for-play-2-0-and-ebean/

残る疑問

  1. -javaagent引数は何をやっているのか?クラスをロードする時にバイトコードを書き換えさせるプログラムの設定をやっているみたいだが、よくわかってない。
  2. 今はテストファイルごとにVM引数を設定しているが、JUnit関連だけ一括して設定する方法があるのかを調べる。