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