Ric*_*oek 6 java spring hibernate hsqldb spring-test-mvc
在我正在研究的Java项目中,我为单元测试提供了以下设置:
@RunWith(SpringJUnit4ClassRunner.class)并@WebAppConfiguration运行单元测试,我创建了一个用于测试应用程序的MockMvc实例webAppContextSetup(webApplicationContext).hibernate.hbm2ddl.import_files属性以加载import.sql带有SQL语句的文件来填充(内存中)数据库.现在,我已经确认了以上所有这些工作:
import.sql各种测试证实,执行中的SQL语句.现在问题是:我添加的语句出现的错误import.sql似乎没有在任何地方报告,也没有任何迹象表明发生了错误.相反,后续语句根本不会执行.(我通过测试证实了这一点.)
有没有什么办法,或将这些错误的报道,我显然不知道的?这有额外的Hibernate属性吗?
摘自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>
Run Code Online (Sandbox Code Playgroud)
我无法像@Julien Kroneg 建议的那样记录异常。
但我能够在方法的 catch 块中放置一个断点,org.hibernate.tool.hbm2ddl.SchemaExport#importScript其中trimmedSql代表正在应用的每个 SQL 语句:
catch ( Exception e ) {
if (haltOnError) {
throw new ImportScriptException( "Error during statement execution (file: '"
+ namedReader.getName() + "'): " + trimmedSql, e );
}
exceptions.add(e);
LOG.unsuccessful(trimmedSql);
LOG.error(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
考虑到初始化脚本是静态的而不是真正的业务数据,这可能就足够了,一旦你让它们工作,它们就有希望继续工作。
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |