我正在尝试使用 Arquillian 来测试我的 JPA 存储库类。但是我只得到空指针异常告诉我它没有找到persistence.xml。如何在标准 Maven 项目中配置它?
问问题
2135 次
3 回答
0
看起来您的 ShrinkWrap 部署在正确的路径中不包含 persistence.xml。persistence.xml 文件应该位于 JAR 的 META-INF 目录中,或者位于 WAR 的 WEB-INF/META-INF 目录中。您可以通过两种方式验证这一点:
通过
Archive.toString(...)
方法的详细标志:在您的
@Deployment
方法中,您可以使用该方法打印出存档的内容toString
,例如@Deployment public static Archive<?> createDeployment() { WebArchive war = ShrinkWrap.create(WebArchive.class).addClasses(Foo.class); System.out.println(war.toString(true)); return war; }
配置 Arquillian 以将生成的部署写入磁盘:
您可以
engine
使用属性将配置元素添加到您的 arquillian.xmldeploymentdeploymentExportPath
,例如<engine> <property name="deploymentExportPath">target/deployment</property> </engine>
这将指示 Arquillian 将其生成的部署写入 Maven 生成的目标目录下的子目录中。
于 2012-10-21T05:16:04.980 回答
0
在 github 上的展示项目中也有大量示例,包括 JPA 测试(也使用 Arquillian Persistence Extension)。
希望这会引导您走上正确的道路:)
于 2012-10-22T10:00:17.967 回答