所以,我有一个在main中使用persistence.xml的项目, 它位于src / main / resources / META-INF
中现在我想在编写自动化单元测试时使用内存数据库(H2),所以我需要另外一个persistence.xml,我在src / test / resouce / META-INF中有它
所以我的问题是我如何能够超越第一个持久性,
我也在使用shrikwrap解析器来解析pom.xml中的所有依赖项,所以它解决了所有问题,我将它添加到shrikwrap以返回WebArchive,有什么办法,我尝试了很多,比如创建配置文件或maven文件但不是与Arquillian合作解决所有问题并添加到部署中。
您可以在下面找到我的Arquillian部署:
WebArchive[] file = Maven.resolver().loadPomFromFile("pom.xml")
.resolve("G:A:V").withTransitivity().as(WebArchive.class);
WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war")
.addAsResource("META-INF/persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
war.addAsLibraries(file);
return war;
答案 0 :(得分:0)
您是否尝试在addAsLibrary(file)
之后添加新资源?
WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war")
.addAsLibraries(file)
.addAsResource("META-INF/persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
答案 1 :(得分:0)
这里至少有两个选项。
StringAsset
- addAsResource(new StringAsset("<xml content>"), "META-INF/persistence.xml")
h2-test-persistence.xml
中的src/test/resources/
,并使用addAsResource("h2-test-persistence.xml", "META-INF/persistence.xml")