我有 2 个测试类,都用unitils注释进行了注释
@DataSet("/dbunit-dataset.xml")
目标数据库是一个HSQLDB,它在一个带有testng注释的抽象超类方法中启动:
@BeforeClass
当测试运行程序(Maven Surefire)到达第二次测试时,数据库已正确实例化(我可以在日志中看到),但unitils或实际上dbunit无法加载数据集。
Caused by: org.unitils.core.UnitilsException: Error while executing DataSetLoadStrategy
at org.unitils.dbunit.datasetloadstrategy.impl.BaseDataSetLoadStrategy.execute(BaseDataSetLoadStrategy.java:48)
at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:230)
at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:153)
... 34 more
Caused by: java.sql.SQLException: Access is denied: Session is closed
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.executeBatch(Unknown Source)
at org.dbunit.database.statement.BatchStatement.executeBatch(BatchStatement.java:59)
at org.dbunit.operation.DeleteAllOperation.execute(DeleteAllOperation.java:126)
at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:79)
at org.unitils.dbunit.datasetloadstrategy.impl.CleanInsertLoadStrategy.doExecute(CleanInsertLoadStrategy.java:45)
at org.unitils.dbunit.datasetloadstrategy.impl.BaseDataSetLoadStrategy.execute(BaseDataSetLoadStrategy.java:44)
... 36 more
我很困惑为什么dbunit设法在第一个测试类中连接到HSQLDB,而在第二个测试类中却没有。
有人有线索吗?
谢谢!J。