Это моя установка для интеграции тестирования с пружиной и встроенной H2 базы данныхSpring интеграция испытательна поколение схемы базы данных из другого проекта
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
<jdbc:embedded-database id="dataSource" type="H2" />
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:sql/globalParams.sql"/>
<jdbc:script location="classpath:sql/customersGroupView.sql"/>
<jdbc:script location="classpath:sql/recentIntegrationsTableAndTrigger.sql"/>
<jdbc:script location="classpath:sql/insertIntegrationDate.sql"/>
<jdbc:script location="classpath:sql/toCharRoutine.sql"/>
</jdbc:initialize-database>
</beans>
Аннотации родительского интеграционных тестов
@ContextConfiguration(locations = [
"classpath:com/dhl/dcc/dcc-core.xml",
"classpath:com/dhl/dcc/test-security.xml",
"classpath:com/dhl/dcc/dcc-audit.xml",
"classpath:com/dhl/dcc/test-dataSource.xml",
"classpath:com/dhl/dcc/test-beans.xml",
"classpath:com/dhl/dcc/dcc-forms.xml"
])
public abstract class AbstractIntegrationTestCase extends AbstractTransactionalJUnit4SpringContextTests {
и в основной части конфигурации * предприятие-менеджер
<property name="generateDdl" value="${dcc.orm.generateDdl:false}"/>
property dcc.orm.generateDdl установлен в true в свойствах.
Он работал хорошо (схема базы данных была создана из классов, аннотированных @Entity), но теперь я разделил модель домена в свой собственный проект и добавил этот проект как зависимость в Maven. После этого мои интеграционные тесты начинают сбой из-за отсутствия схемы db. Как настроить, где должна выглядеть встроенная база данных для модели домена? Благодарю.
изменения: заводская конфигурация объект
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceUnitName" value="DCC"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="${dcc.orm.generateDdl:false}"/>
<property name="showSql" value="${dcc.orm.showSql:false}"/>
<property name="databasePlatform" value="${dcc.orm.dialect}"/>
</bean>
</property>
</bean>
Содержит ли баночка этот "путь к классам: SQL/globalParams.sql"? Обычно тестовые ресурсы не упаковываются в банку, а * -test.jar. Поэтому, если файлы sql находятся в тестовом каталоге, упакуйте тестовую банку и добавьте ее в свой целевой проект. – Hippoom
Сценарии не являются проблемой. Они исполняются. Проблема в том, что схема БД во встроенной базе данных не создается из объектов JPA. – DominikM
Извините за непонимание. Не могли бы вы разместить Spring xml, содержащий ваш entityManagerFactory? – Hippoom