我正在学习Arquillian以了解我是否可以添加到项目中。
我能够创建一个测试并部署一个“静态”test-persistence.xml,类似于this tutorial。
我的问题是我真正的persistence.xml有不同的映射()和实体()。为了让我的测试工作,我必须:
备选方案4不可行,因为无法维护。 备选方案1是可行的,但我想保持我的构建更小。 我尝试了2和3,但我无法找到任何方法(我使用JavaEE,JPA 2.0和Hibernate)来制作它们。似乎Hibernate不支持动态添加实体/映射,而Archive.AddAsResource只接受路径,而不是“文件内容”,或类似的东西。
我认为在使用Arquillian进行测试时这是一个常见问题。如何以一种只包含测试所需内容的方式构建我的persistence.xml?
答案 0 :(得分:2)
创建persistence.xml的测试版本,将其存储为源树中的单独文件,并让ShrinkWrap将其作为文件资产添加到测试档案中。
return ShrinkWrap.create(JavaArchive.class)
.addAsManifestResource(new FileAsset(new File("src/test/resources/META-INF/test-persistence.xml")), "persistence.xml");