单元测试数据库

时间:2011-08-22 21:24:24

标签: unit-testing sql-server-2008 testing continuous-integration integration-testing

我想测试我的数据库作为一组集成测试的一部分。为了提高速度,我已经对我的所有代码单元进行了测试,但是我需要确保所有存储过程和代码在保持时都能正常工作。昨天我做了一些谷歌搜索,在这里发现了一篇很好的文章http://msdn.microsoft.com/en-us/magazine/cc163772.aspx,但它似乎有点旧了。我想知道是否有任何当前“更好”的方法来清理数据库,恢复到预期状态或为每次测试回滚准备好了吗?我使用sql 2008在c#4,mvc3编码。

2 个答案:

答案 0 :(得分:2)

这很简单,所以它可能不是你需要的,但我所做的是在给定的理智状态下保持数据库的备份 - 通常是当前的生产数据库。然后,对于每个构建,我们恢复该数据库(使用Jenkins,NANT和SQLCMD),应用当前构建更新脚本并运行我们的测试套件。这样做的好处是既可以为您提供一个“已知数量”的数据库,也可以验证升级脚本是否有效。

答案 1 :(得分:2)

我们正在使用DbUnit在测试之间设置和/或拆除数据库,以及在测试期间断言数据库状态。