私が取り組んでいる Java プロジェクトでは、単体テスト用に次の設定を行いました。
- Spring Test MVC を使用して
@RunWith(SpringJUnit4ClassRunner.class)
単体テスト@WebAppConfiguration
を実行し、アプリケーションをテストするためにMockMvc
インスタンスを作成しwebAppContextSetup(webApplicationContext)
ます。 - インメモリ HSQLDB をセットアップするための Hibernate 構成があります。すべてのテーブルは @Entity クラスに基づいて作成されます。
hibernate.hbm2ddl.import_files
Hibernate 構成で、SQL ステートメントを含むファイルをロードしimport.sql
て (インメモリ) データベースにデータを入力するようにプロパティを設定しています。
今、私はこれらすべての上記の作業を確認しました:
- テストは、インメモリ DB から正常に挿入/取得できます。
- の SQL ステートメント
import.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>