在我正在处理的 Java 项目中,我为我们的单元测试设置了以下设置:
- 我正在使用 Spring Test MVC,
@RunWith(SpringJUnit4ClassRunner.class)
并@WebAppConfiguration
运行单元测试,并创建一个用于测试应用程序的MockMvc
实例。webAppContextSetup(webApplicationContext)
- 我有一个 Hibernate 配置来设置内存中的 HSQLDB,所有表都是基于 @Entity 类创建的。
- 在 Hibernate 配置中,我将
hibernate.hbm2ddl.import_files
属性设置为使用 SQL 语句加载文件import.sql
以填充(内存中)数据库。
现在,我已经确认了以上所有这些工作:
- 测试可以成功地从内存数据库中插入/检索。
import.sql
正如各种测试所证实的那样,执行中的 SQL 语句。
现在的问题是:我添加的语句发生的错误import.sql
似乎没有在任何地方报告,也没有任何迹象表明发生了错误。相反,后续语句根本不会执行。(我已经通过测试证实了这一点。)
是否有任何方式或地点报告了我显然不知道的这些错误?是否有额外的 Hibernate 属性呢?
摘自休眠测试配置:
<bean id="sessionFactory" name="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.archive.autodetection">class,hbm</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</prop>
<prop key="hibernate.connection.username">sa</prop>
<prop key="hibernate.connection.password"></prop>
<prop key="hibernate.connection.url">jdbc:hsqldb:mem:myschema</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.hbm2ddl.import_files">configuration/test/import.sql</prop>
<prop key="hibernate.hbm2ddl.import_files_sql_extractor">org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor</prop>
<!-- when using type="yes_no" for booleans, the line below allow booleans in HQL expressions: -->
<prop key="hibernate.query.substitutions">true 'Y', false 'N'</prop>
</props>
</property>
</bean>