在使用Arquillian的测试中使用不同的persistence.xml文件

时间:2012-10-20 18:23:53

标签: java unit-testing java-ee jboss-arquillian

我正在使用标准的Maven项目,我在java resources文件夹中有一个persistence.xml,在test文件夹中有另一个persistence.xml。如何在arquillian测试中使用test文件夹中的persistence.xml?或者这不正常吗?

3 个答案:

答案 0 :(得分:3)

  

如何在arquillian测试中使用test文件夹中的persistence.xml?

您可以为测试构建一个ShrinkWrap部署,该部署打包测试资源的persistence.xml文件,而不是主资源。您可以在@Deployment方法中引用它:

addAsManifestResource("persistence.xml", new File("src/test/resources/persistence.xml"))

  

或者这不正常吗?

这是可以接受的事情。但是,使用Arquillian Persistence Extension,您应该能够使用主资源的persistence.xml文件,因为持久性单元将由容器管理,并且底层数据源将在运行时提供给JPA提供程序。

通常,对于需要事务类型为RESOURCE_LOCAL而不是JTA的持久性单元的实例,使用仅测试的persistence.xml,以便能够测试容器外的持久性单元。

答案 1 :(得分:1)

您的代码中有一行您可以定义正在使用的持久性文件。找到它(在大多数平台上使用C-f)并进行更改。

答案 2 :(得分:1)

还应该可以这样添加:

.addAsResource("test-persistence.xml", "META-INF/persistence.xml")