Вот что я пытаюсь сделать. Я использую постоянство JPA в веб-приложении, но у меня есть набор модульных тестов, которые я хочу запустить вне контейнера.
У меня есть основной persistence.xml
в папке META_INF
моего основного приложения, и он отлично работает в контейнере (Glassfish).
Я поместил второй persistence.xml
в папку META-INF
моего каталога test-classes
. Это содержит отдельный блок персистентности, который я хочу использовать только для тестирования. В Eclipse я поместил эту папку выше в classpath, чем папка по умолчанию, и она, кажется, работает.
Теперь, когда я запускаю сборку maven непосредственно из командной строки и он пытается запустить модульные тесты, переопределение persistence.xml
игнорируется. Я вижу переопределение в папке META-INF
каталога, сгенерированного maven test-classes
, и ожидал, что тесты maven будут использовать этот файл, но это не так. Мои весенние тестовые изменения конфигурации, достигнутые подобным образом, работают.
Я не совсем понимаю, находится ли persistence.xml
через путь к классам. Если это так, то мое переопределение должно работать так же, как переопределение пружины, поскольку плагин maven surefire объясняет"[Каталог класса тестирования] будет включен в начале пути к классу теста".
Неправильно ли я предвидел, как расположен файл persistence.xml
?
Я мог бы (и должен был) создать второй модуль персистентности в рабочем файле persistence.xml
, но кажется неудобным помещать тестовую конфигурацию в этот рабочий файл. Любые другие идеи о том, как достичь моей цели, приветствуются.