正如limc给出的答案的后续,这是我所能做的。
我使用Spring和Hibernate所以我能够把我的春节,数据配置文件,并把它变成这样:
<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配置文件和它们指向的属性文件。
谢谢,limc!
另外,我确实看到limc提到的问题。该系统被设计为部署用于连接到生产环境中的SQL Server数据库,该数据库不会通过hbm2ddl创建。所以,如果我的HBM文件中有错误,我的测试可能都会正常工作,而我仍然可能会遇到生产故障。
一方面,我对此非常不满,但另一方面,我实际上可以以完全独立的方式对数据库运行测试用例。就这一解决方案而言,有人可以从源代码管理中检查此项目,并立即运行测试用例,而无需执行任何类型的数据库设置。我也喜欢那个。不幸的是,我还没有找到一个真正有两种方法的好方法。
假设您可以通过ODBC连接到HSQL,可以创建一个[SQL Server链接服务器实例](http://msdn.microsoft.com/zh-cn/library/aa213778%28SQL.80%29.aspx) ,并将表格和数据转储到HSQL中。然后应该有HSQL工具根据现有的数据库/模式生成脚本。 – 2011-01-28 16:48:00