我正在建立一个持续集成服务器(Hudson)来构建一个Java项目并运行相关的单元/集成测试。大多数测试访问数据库,测试数据保存在DbUnit XML文件中。持续集成:保持测试数据库模式是最新的
我正在寻找一种方法来自动保持测试数据库模式是最新的。目前,针对特定版本的SQL脚本存储在一个发行版本命名的目录:
└───scripts
├───0.1.0
├───0.1.1
├───0.1.2
├───0.1.4
例如,对于0.1.4版本的SQL脚本
scripts\0.1.4\script-0.1.4.sql
的问题是,这些脚本包含模式更改的混合(例如ALTER TABLE ...)和对静态表的更改(例如向USER_TYPE表添加新角色)。
对于单元测试,我只想应用模式更改,因为如上所述,单元测试的所有数据都保存在DbUnit XML文件中。虽然我可以将这两种类型的数据库更改分为不同的文件,但是在将版本应用于质量检查,生产等时,模式更改和数据更改之间通常会存在依赖关系。
无论如何,这只是一个非常冗长的方式,询问是否有人提出了一种强大的方法来自动保持测试模式是最新的?我知道Unitils对保持测试模式是最新的有一些支持,但我不确定它是否可以忽略SQL增量脚本中的数据更新语句。