Настройка источника данных в arquillian

Итак, у меня есть проект, который использует файл persistence.xml в main, он находится в 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;

person Sanket Patel    schedule 23.02.2016    source источник


Ответы (2)


Пробовали ли вы добавить новый ресурс после addAsLibrary(file)?

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

Здесь у вас есть как минимум два варианта.

  • Создайте его прямо в коде, используя 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")
person bartosz.majsak    schedule 26.04.2016