У меня есть набор интеграционных тестов, которые были сгенерированы Кенгуру Spring для моих объектов области (и ДАО ITDs).
Они, кажется, фиксируются для использования "производства" applicationContext.xml, который читает database.properties и подключения к схеме базы данных MySQL, которую я настроил для экспериментирования с проектом:
privileged aspect AdvertIntegrationTest_Roo_IntegrationTest {
declare @type: AdvertIntegrationTest: @RunWith
(SpringJUnit4ClassRunner.class);
declare @type: AdvertIntegrationTest: @ContextConfiguration
(locations = "classpath:/META-INF/spring/applicationContext.xml");
Результат этого - то, что моя демонстрационная база данных часто заполняется с мусором этими тестами.
Я хотел бы изменить конфигурацию так, чтобы интеграционные тесты использовали базу данных в мадам и оставили базу данных MySQL хорошо одной. В данный момент единственная опция, которую я вижу, состоит в том, чтобы удалить аннотации Кенгуру и управлять этими тестами сам с этого времени, но я держал бы Кенгуру в курсе в данный момент.
Действительно ли возможно настроить мой проект, таким образом, "mvn кот" и "mvn тест" использование команд отдельные базы данных, не повреждая установку Кенгуру Spring? Или возможно существует лучший подход для того, что я хочу сделать?
Шон,
я боролся с тем же самым. В итоге я поместил копию applicationContext.xml в test/resources/META-INF/spring и изменил следующую строку:
<context:property-placeholder location="classpath*:META-INF/spring/test/*.properties"/>
В той "тестовой" директории, на которую указывает держатель свойств, я поместил еще один database.properties, который настраивает hsqldb.
Наконец, я должен был иметь другую копию persistence.xml, которая настраивает SQL Dialect (также в applicationContext.xml)
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence-for-tests.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
Я полагаю, что возможно более элегантное решение с помощью магии pom.xml, но пока это кажется мне приемлемым решением.
Hans