Как я могу исключить один файл persistence.xml из тестового пути к классам в Eclipse без использования Maven / Ant? - PullRequest
1 голос
/ 28 июля 2011

Во время выполнения интеграционных тестов JUnit в Eclipse у меня есть два файла persistence.xml в пути к классам - один, содержащий конфигурацию для тестовых случаев, а другой - для производства. Мне нужно найти способ исключить файл persistence.xml для производства из тестового пути к классам.

Ограничения: мне не разрешено использовать Maven или Ant, только Eclipse Helios SR1 (с JUnit). Поставщиком постоянства JPA 2 является EclipseLink 2.2.0. Поскольку я должен использовать ClearCase 7.0 в качестве VCS, никакие связанные ресурсы невозможны, например, , как описано здесь .

Вот примерная структура проекта:

project-datamodel (containing the Entity beans)
\- src/resources/META-INF/persistence.xml (for production; want to exclude it)
\- test/resources/META-INF/persistence.xml (for test)

project-service (containing the Session beans)
\- ejbModule

project-service-it (containing the JUnit integration tests for the Session beans)
\- test

Ответы [ 2 ]

1 голос
/ 28 августа 2012

У меня была эта проблема, потому что мои два файла persistence.xml (производственный и тестовый) использовали одно и то же имя <persistence-unit>.Как упоминалось выше, порядок пути к классам не имеет значения, поскольку EclipseLink, по-видимому, находит все файлы persistence.xml, прежде чем решить, какой из них использовать.Я решил это, переименовав тестовый PU в xml-файл и вызвав мой юнит-тест:

@BeforeClass
public static void setup() {
    em = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME).createEntityManager();
}
0 голосов
/ 28 июля 2011

Вы можете редактировать путь к классам при создании конфигурации запуска для своих модульных тестов (Eclipse создаст ее автоматически, если вы выберете «Run As -> Junit Test» из контекстного меню.

При редактировании этой новой конфигурации запуска вы можете добавить пользовательские папки на вкладке "Classpath" и переместить их вверх перед стандартным путем к классам. Я не пробовал, но это должно быть сделано, потому что в тесте он сначала найдет тест persistence.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...