Модульное тестирование в спящем режиме с IntelliJ, как настроить контекст сеанса? Настройка теста mysql db с семенами - PullRequest
0 голосов
/ 20 ноября 2011

У меня есть проект maven с IntelliJ, и я довольно новичок в обоих.

У меня есть весеннее mvc-приложение, работающее сейчас с hibernate (и я восхищаюсь этим!).

Теперь я пришел из .net, поэтому с .net мне пришлось написать дополнительный код для настройки фабричного сеанса и т. Д. В моем проекте модульного тестирования, поскольку он не похож на веб-приложение, в котором вещи генерируются при первой загрузке изатем для каждого запроса также.

Как я могу сделать это с Hibernate?Я хочу использовать mysql, но должен ли он использовать другую базу данных, например: appname_test

Кстати, при использовании проекта maven IntelliJ внутренне использует команды maven для создания и запуска тестов?

возможно ли изолировать мои тесты и запустить определенный файл с помощью строки maven commadn?

Ответы [ 3 ]

1 голос
/ 20 ноября 2011

поскольку вы используете spring, вы можете настроить другую фабрику сеансов, используя другой источник данных для тестов, и использовать этот файл конфигурации в тестовых примерах.Все это внедрено, поэтому вам не нужно писать дополнительный код, просто некоторую конфигурацию.

Плагины Maven используют те же команды, что и командная строка.В конечном итоге, как будут выполняться ваши тесты, будет зависеть от того, как вы настроите pom.xml.Предполагая, что вы используете плагин surefire для запуска тестов, вы, безусловно, можете определить, какой класс вы хотите использовать (suite?), Хотя я предпочитаю запускать все тесты внутри папки.

1 голос
/ 20 ноября 2011

В Maven у вас есть src/main/ для основного кода и scr/test/ для тестов.Вы можете иметь одинаковые файлы / классы в обоих, и во время тестов последний имеет приоритет.

Это не связано с IDE, IntelliJ просто импортирует проект maven.Между тем все maven проекты могут работать независимо от IDE.

0 голосов
/ 20 ноября 2011

Если вы используете файл hibernate.cfg.xml для настройки Hibernate, вам нужно поместить его копию в src / test / resources и изменить его так, чтобы он указывал на вашу базу данных junit.

Если вы используете файл persistence.xml, вы можете скопировать его в src / test / resources или добавить в существующий.В любом случае, присвойте ему уникальное имя модуля сохраняемости и укажите его по этому имени при загрузке во время выполнения.

Мне всегда приходилось писать код для запуска SessionFactory / EntityManager в модульных тестах.Я обычно устанавливаю базовый класс, который делает это, и затем расширяю его для каждого теста, который должен использовать Hibernate.

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