2016-02-23 10 views
1

Итак, у меня есть проект, который использует persistence.xml в основной, он находится в SRC/главная/ресурсы/META-INFУстановка Datasource в arquillian

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

так что мой вопрос, как я более-ездить первую настойчивость,

Я также использую резольвер shrikwrap для разрешения всех зависимостей из pom.xml, поэтому он разрешает все это, и я добавляю его в shrikwrap для возврата WebArchive, есть ли способ, я пробовал m любой, например, создание профиля или 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; 

ответ

0

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

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

Да ,,, я уже пробовал ... :( –

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")