在arquillian

时间:2016-02-23 20:58:57

标签: java unit-testing jboss-arquillian wildfly-9 shrinkwrap

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

2 个答案:

答案 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文件保存在其他名称下,例如h2-test-persistence.xml中的src/test/resources/,并使用addAsResource("h2-test-persistence.xml", "META-INF/persistence.xml")
  • 添加