Как работать, Кенгуру Spring генерировал тесты против другой базы данных к Tomcat?

У меня есть набор интеграционных тестов, которые были сгенерированы Кенгуру 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? Или возможно существует лучший подход для того, что я хочу сделать?

6
задан seanhodges 17 February 2010 в 14:25
поделиться

1 ответ

Шон,

я боролся с тем же самым. В итоге я поместил копию 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

6
ответ дан 17 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: