2

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)

各テストの実行後に、開いているすべてのトランザクションをクリーンアップする方法はありますか?

4

0 に答える 0