一尘不染

每次测试后如何清除HSQLDB中的数据?

hibernate

我已经在项目中编写了一些JUnit测试,这些测试用于在setup方法中填充数据。现在我已经将maven添加到我的项目中,并且我想执行所有来自maven的测试用例,即使用mvn
test。现在的问题是,在运行每个测试类之后,不会清除我的数据库。每个类的测试用例运行后,我需要清除HSQLDB。


阅读 492

收藏
2020-06-20

共1个答案

一尘不染

  1. 您可以通过删除架构来清除数据。默认模式称为PUBLIC。如果执行下面的SQL语句,它将清除所有数据并删除所有表。

SCHEMA公开级联广告

  1. 或者,如果需要表和架构对象定义,则可以创建一个文件:包含对象但不包含数据的数据库,并将下面的属性添加到.properties文件中。使用这种类型的数据库进行测试,不会保留对数据的更改

files_read_only = true

  1. HSQLDB 2.2.6和更高版本中提供了最新的替代方法,使您可以在保留表的同时清除架构中的所有数据。在下面的示例中,PUBLIC模式被清除。

公开发布方案并提交

HSQLDB的最新版本已增强了该语句。请参阅 Truncate语句*
下的http://hsqldb.org/doc/2.0/guide/dataaccess-
chapt.html#dac_truncate_statement
*

2020-06-20