grails アプリケーションをテストするためにキュウリを使用しています。私のテスト環境では h2 データベースを使用しています。テスト データを作成するには、before セクションでロードするフィクスチャを使用します。
fixtureLoader.load("fixtures")
after セクションで、データベースをドロップします
def configuration = grailsApplication.mainContext.getBean("&sessionFactory").configuration
def connection = grailsApplication.mainContext.getBean('dataSource').connection
new SchemaExport( configuration, connection ).create( false, true )
65535 の開いているトランザクションがあるため、セッションが閉じられるまで、テストは正常に実行されます。
org.h2.jdbc.JdbcSQLException: Allgemeiner Fehler: "java.lang.IllegalStateException: There are 65535 open transactions [1.4.186/102]"
General error: "java.lang.IllegalStateException: There are 65535 open transactions [1.4.186/102]" [50000-186]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:168)
at org.h2.message.DbException.convert(DbException.java:295)
at org.h2.message.DbException.toSQLException(DbException.java:268)
at org.h2.message.TraceObject.logAndConvert(TraceObject.java:352)
at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:473)
at org.h2.jdbc.JdbcConnection.setAutoCommit(JdbcConnection.java:430)
at org.grails.datastore.gorm.GormStaticApi.withTransaction(GormStaticApi.groovy:814)
at org.grails.datastore.gorm.GormStaticApi.withTransaction(GormStaticApi.groovy:714)
各テストの実行後に、開いているすべてのトランザクションをクリーンアップする方法はありますか?