Установка источника данных в arquillian

Итак, у меня есть проект, который использует файл persistence.xml в основном, он находится в src/main/resources/META-INF

Теперь я хочу использовать базу данных в памяти (H2) при написании автоматизированного модульного теста, поэтому мне нужен другой файл persistence.xml, он у меня есть в src/test/resouce/META-INF

Итак, мой вопрос: как я могу преодолеть первое упорство,

Я также использую shrikwrap resolver для разрешения всех зависимостей из 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 ответа

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

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

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

    WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war")
            .addAsLibraries(file)
            .addAsResource("META-INF/persistence.xml")
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
Другие вопросы по тегам