我正在尝试使用Arquillian来测试我的JPA存储库类。但是我只得到nullpointer异常,告诉我它没有找到persistence.xml。如何在标准Maven项目中配置它?
答案 0 :(得分:0)
你看过@官方文档here。 project structure表明它是使用Maven构建的。
如果您仍遇到问题,请发布异常消息。
祝你好运!答案 1 :(得分: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
属性将deploymentdeploymentExportPath
配置元素添加到arquillian.xml,例如
<engine>
<property name="deploymentExportPath">target/deployment</property>
</engine>
这将指示Arquillian将其生成的部署编写到Maven生成的目标目录下的子目录中。
答案 2 :(得分:0)
showcase project on github中还有很多例子,包括JPA测试(也使用Arquillian Persistence Extension)。
希望这会让你走上正确的道路:)