2

所以,我有一个在 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;
4

2 回答 2

0

您是否尝试过添加新资源addAsLibrary(file)

    WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war")
            .addAsLibraries(file)
            .addAsResource("META-INF/persistence.xml")
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
于 2016-02-23T21:40:16.563 回答
0

您在这里至少有两个选择。

  • 使用 - 在代码中直接创建它StringAsset-addAsResource(new StringAsset("<xml content>"), "META-INF/persistence.xml")
  • 将您的 h2 文件保存在不同的名称下,例如h2-test-persistence.xmlinsrc/test/resources/并使用添加它addAsResource("h2-test-persistence.xml", "META-INF/persistence.xml")
于 2016-04-26T07:39:38.823 回答