我正在按照 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
对我来说它并没有关闭运行 play clean compile 的 ide
有什么想法吗???
最佳答案
有blog post关于设置单元测试以在 IDE 中运行。它建议在运行测试时使用的 java 添加以下命令行:
-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar
Play 似乎没有附带 ebean 代理,应该先从 Ebean 网站下载(在 ebean 主包中)。
我没试过
Ebean user guide还提到了它(15.5.2 javaagent 部分),甚至还有配置 Eclipse 的示例。
此外,为了加快增强速度,也许这样会更好:
-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar;packages=models.*
所以它只会查看 models.*
(Play 中 ORM 模型的默认包)。
关于java - play framework 2.1 junit 测试无法从 eclipse 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14913627/