玩框架2.1 junit测试不能从eclipse工作

nao*_*oru 14 java eclipse playframework-2.0 playframework-2.1

我按照zentask教程编写了一个junit测试,测试不会从eclipse IDE运行它给出以下异常

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)
Run Code Online (Sandbox Code Playgroud)

我读了一下,发现有些人编辑了buils.scala,在main中添加了以下行:ebeanEnabled:= true

对我而言,它并没有关闭运行play clean编译的ide

有任何想法吗???

kol*_*len 15

有关于设置在IDE中运行的单元测试的博客文章.它建议在运行测试时将以下命令行添加到java:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar
Run Code Online (Sandbox Code Playgroud)

似乎Play没有附带ebean代理,它应该首先从Ebean网站下载(在主ebean包中).

我没试过.

Ebean用户指南也提到它(15.5.2 javaagent部分),甚至还有配置Eclipse的示例.

此外,为了加快增强速度,这可能会更好:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar;packages=models.*
Run Code Online (Sandbox Code Playgroud)

所以它只会考虑models.*(Play中ORM模型的默认包).


小智 6

您可以使用Avaje Ebean Eclipse插件:

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

安装完成后,右键单击项目并选择"启用Ebean增强",激活Ebean增强功能.