撤消 IDatabaseTester setDataSet()
Undo IDatabaseTester setDataSet()
我有两个独立的 JUnit 测试,它们使用 IDatabaseTester 加载模式,然后从 XML.
加载数据
单独运行时,一切顺利。但是当连续 运行 时,第二次 JUnit 测试失败,因为 "the TABLE name already exists".
我已经追踪到 HSQLDB 数据库被尝试加载两次。第二次当然会失败
我查看了 IDatabaseTester 定义,虽然有设置数据库的方法,但我找不到 "unset" 的方法。
卸载它的正确方法是什么?
回答自己的问题,以防对其他人有帮助:
import org.apache.ddlutils.Platform;
import java.sql.Connection;
import org.apache.ddlutils.model.Database;
Platform platform = PlatformFactory.createNewPlatformInstance(HSQLDB_JDBC_DRIVER, HSQLDB_JDBC_URL);
Database database = jdbcModelReader.getDatabase(hsqldbConnection, null);
platform.dropTables(database, true);
我有两个独立的 JUnit 测试,它们使用 IDatabaseTester 加载模式,然后从 XML.
加载数据单独运行时,一切顺利。但是当连续 运行 时,第二次 JUnit 测试失败,因为 "the TABLE name already exists".
我已经追踪到 HSQLDB 数据库被尝试加载两次。第二次当然会失败
我查看了 IDatabaseTester 定义,虽然有设置数据库的方法,但我找不到 "unset" 的方法。
卸载它的正确方法是什么?
回答自己的问题,以防对其他人有帮助:
import org.apache.ddlutils.Platform;
import java.sql.Connection;
import org.apache.ddlutils.model.Database;
Platform platform = PlatformFactory.createNewPlatformInstance(HSQLDB_JDBC_DRIVER, HSQLDB_JDBC_URL);
Database database = jdbcModelReader.getDatabase(hsqldbConnection, null);
platform.dropTables(database, true);