Так же, как продолжение ответа, данного limc, вот что я смог сделать.
Я использую Spring и Hibernate, поэтому я смог взять свой конфигурационный файл данных Spring и превратить его в следующее:
<bean id="sessionFactory" name="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
...hbm files...
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${db.dialect}</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_sql_comments">false</prop>
<prop key="hibernate.hbm2ddl.auto">${ddl.create}</prop>
</props>
</property>
</bean>
Имея это, я смог настроить конфигурацию propertyConfigurer, чтобы заполнить заполнители, которые выглядят так:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:test-messages.properties</value>
</property>
</bean>
</beans>
У меня есть один из этих файлов для моего тестирования и еще один для моего производственного кода. Показанная выше версия является моей тестовой версией и ссылается на файл test-messages.properties, который выглядит следующим образом:
db.dialect=org.hibernate.dialect.HSQLDialect
ddl.create=create
Это на самом деле работает очень хорошо, так как я могу повторно использовать практически все мои производственные конфигурационные файлы, используя заполнители и конструкцию propertyConfigurer. Единственные дополнительные файлы, которые мне нужны для моей тестовой среды, - это файлы конфигурации propertyConfigurer и файлы свойств, на которые они указывают.
Спасибо, лимк!
Кроме того, я вижу проблему, о которой упоминал Лимк. Эта система предназначена для развертывания для подключения к производственной базе данных SQL Server, которая не будет создаваться через hbm2ddl. Так что, если в моих файлах HBM есть ошибка, все мои тесты могут нормально работать, в то время как у меня могут возникнуть сбои в работе.
С одной стороны, я очень недоволен этим, но, с другой стороны, я могу фактически запускать тестовые случаи для БД полностью автономным способом. Как и в случае с этим решением, кто-то может вывести этот проект из-под контроля исходного кода и немедленно запустить тестовые примеры, не выполняя каких-либо настроек БД. Мне нравится это тоже. К сожалению, я еще не нашел действительно отличный способ получить оба.