为 Junit 测试克隆现有数据库的最佳方法?

Posted

技术标签:

【中文标题】为 Junit 测试克隆现有数据库的最佳方法?【英文标题】:Best way to clone existing DB for Junit tests? 【发布时间】:2013-07-12 21:00:02 【问题描述】:

我必须以某种方式从现有数据库中克隆表才能运行单元测试。理想的解决方案是——一个 Maven 插件或 Spring bean——将数据库表克隆到一个 HSQL 数据库中,然后我可以用我的 JUnit 测试来命中它。

最直接的方法是什么?

【问题讨论】:

你可以使用Flyway 【参考方案1】:

下载 DBUnit。 http://dbunit.sourceforge.net/

将数据集从现有数据库导出到 XML。

在您的套件中,将数据集导入 HSQL。

如果您打算对行为与其持久层紧密耦合的应用程序(例如任何用 ORM 编写的东西)进行单元测试,那么您将需要了解 DBUnit。

【讨论】:

我已经让 DBUnit 工作了(有点),但我们数据库中的所有内容都以 CDATA 数据类型返回 - 不太适合测试。我很抱歉超出了原始问题的范围,但是您知道如何解决这个问题吗?我正在从 AS400/DB2 数据库中读取表格。 (驱动程序 com.ibm.as400.access.AS400JDBCDriver)。

以上是关于为 Junit 测试克隆现有数据库的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

在 Maven/Junit/DBUnit 项目的集成测试之前/之后创建/删除数据库的最佳方法?

JUnit + DbUnit:在开发和测试环境之间切换数据库连接

复制数据库的最佳方法是啥?

使用junit进行流口水测试

使用hsql hibernate数据源隔离Junit测试

使用JUnit4编写Solr插件的单元测试,包括创建集合