如何在Arquillian中测试JPA

时间:2012-10-20 19:08:13

标签: java java-ee junit jboss-arquillian

我正在尝试使用Arquillian来测试我的JPA存储库类。但是我只得到nullpointer异常,告诉我它没有找到persistence.xml。如何在标准Maven项目中配置它?

3 个答案:

答案 0 :(得分:0)

你看过@官方文档hereproject structure表明它是使用Maven构建的。

如果您仍遇到问题,请发布异常消息。

祝你好运!

答案 1 :(得分:0)

看起来您的ShrinkWrap部署在正确的路径中不包含persistence.xml。 persistence.xml文件应位于JAR的META-INF目录中,或位于WAR的WEB-INF / META-INF目录中。您可以通过两种方式验证这一点:

  1. 通过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;
    }
    
  2. 配置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)。

希望这会让你走上正确的道路:)