玩框架2.1 junit测试不能从eclipse工作
我按照zentask教程编写了一个junit测试,测试不会从eclipse IDE运行,它给出了以下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.(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
对我来说它没有关闭运行play clean编译的ide
有任何想法吗???
有关于设置unit testing以在IDE中运行的博客文章 。 它建议在运行测试时使用以下命令行添加:
-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.*
所以它只会考虑models.*
(Play中的ORM模型的默认包)。
您可以使用Avaje Ebean Eclipse插件:
http://www.avaje.org/eclipseupdate/site.xml
安装完成后,右键单击项目并选择“启用Ebean增强”,激活Ebean增强function。
当我试图从扩展Model的类之一的声明中删除public修饰符时,我收到此错误。
我正在使用一个模型来制作一个“通过”表(与其他信息有多对多的关系),因此受保护的访问是有意义的。 也许还有另一种方法可以做到这一点,但是javadoc游戏非常稀疏。