play framework 2.1 junit test 从 eclipse 开始不起作用

im遵循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)

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

对我来说,它没有关闭ide运行播放干净编译

任何想法???


答案 1

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

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

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

我没有尝试过。

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

另外,为了加速增强,也许这会更好:

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

因此,它只会查看(Play中ORM模型的默认包)。models.*


答案 2

您可以使用Avaje Ebean Eclipse插件:

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

安装完成后,通过右键单击您的项目并选择启用Ebean增强功能来激活Ebean增强功能。


推荐