的我正在开发一个ETL过程,从一个数据库到数据仓库中提取业务数据。该应用程序不使用NHibinate,Linq to Sql或Entity Framework。该应用程序具有自己生成的数据访问类,它们生成执行CUID所需的SQL语句。可维护性数据库集成测试
正如人们可以想象的那样,编写生成自定义SQL代码的开发人员很容易犯错误。
我想编写一个生成测试数据(Arrange)的程序,比执行ETL过程(Act)和验证数据仓库(Assert)。
我不认为这是很难写这样的程序。然而,我担心的是,过去我的公司曾试图做类似的事情,最终导致一系列不可维护的单元测试,这些测试经常因为添加新功能而对数据库模式进行了许多新的更改而失败。
我的计划是编写一个在构建机器上运行的集成测试,而不是任何单元测试来确保ETL过程正常工作。测试数据不能完全随机的,因为在确定数据是如何加载到数据仓库的业务逻辑的产生。我们有定制的开发工具,当数据库定义发生变化时可以生成新的数据访问类。
我很想从社区那里得到任何反馈意见,让我写出这样易于维护的集成测试。有些想法我有:
保存在版本控制备份测试数据库(TFS),开发人员需要在有数据更改源或数据仓库来修改备份数据库。
开发人员需要通过手动测试程序(本例中为C#)来维护测试数据。该程序将为开发人员生成测试数据提供一个基本框架。
当测试数据库初始化时,它会生成随机数据。开发人员需要编写代码来覆盖某些随机生成的数据,以确保测试通过。
我欢迎任何建议 感谢