play framework 2.1 junit test not working from eclipse

懵懂的女人 提交于 2019-11-28 02:44:27

问题


im following the zentask tutorial and wrote a junit test, the test wont run from the eclipse IDE its giving the following exception

javax.persistence.PersistenceException: java.lang.IllegalStateException: Class [class play.db.ebean.Model] is enhanced and [class models.User] is not - (you can not mix!!)
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1475)
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1138)
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1058)
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:565)
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:252)
    at com.avaje.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:124)
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:210)
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:64)

I read a bit and found that for some people editing the buils.scala adding the following line inside main helped : ebeanEnabled := true

to me it didnt nither closeing the ide running play clean compile

any ideas???


回答1:


There is blog post about setting up unit tests to run in IDEs. It suggests to add following command-line to java used when running tests:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar

Seems that Play not ships with ebean agent, it should be downloaded from Ebean website first (in main ebean package).

I not tried it.

Ebean user guide also mentions it (15.5.2 javaagent section), there is even example for configuring Eclipse.

Also, to speed up enhancement maybe this will be better:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar;packages=models.*

So it will only look into models.* (default package for ORM models in Play).




回答2:


You can use the Avaje Ebean Eclipse Plugin:

http://www.avaje.org/eclipseupdate/site.xml

After the installation, activate Ebean enhancement by right clicking on your project and selecting Enable Ebean Enhancement.




回答3:


i got this error when i tried to remove the public modifier from the declaration of one of classes extending Model.

i was using a model to make a "through" table (a many to many relationship with additional information), so protected access makes sense. perhaps there's another way to do this, but the play javadoc is pretty sparse.



来源:https://stackoverflow.com/questions/14913627/play-framework-2-1-junit-test-not-working-from-eclipse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!