java - 在 arquillian 中设置数据源

标签 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 filetering,但无法与 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;

最佳答案

您是否尝试过在 addAsLibrary(file) 之后添加新资源?

    WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war")
            .addAsLibraries(file)
            .addAsResource("META-INF/persistence.xml")
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");

关于java - 在 arquillian 中设置数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35588045/

相关文章:

java - 是否有一种不太详细的方法来默默地忽略 Java 单元测试中的特定嵌套异常?

junit - 在gradle构建期间选择arquillian容器

java - Jolokia - Origin null 不允许调用此代理

java - 当我的服务器上发生事件时 Facebook 通知

java - Spring 类未找到

unit-testing - Jasmine 单元测试抽象类

Python mock 修补另一个函数调用的函数

java - jsf-api 和 jsf-impl 有什么关系?

jakarta-ee - JUnit/Arquillian : Run managed Wildfly 8. 1 个容器

java - android setEnabled但未更改文本