【问题标题】:Unit testing database单元测试数据库
【发布时间】:2011-08-22 21:24:24
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我们将它与 java 堆栈一起使用,但看起来 Ndbunit 为 .net 提供了相同的功能。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2020-07-03
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      相关资源
      最近更新 更多