VS2012中的集成测试 - 如何管理测试数据库?

时间:2013-06-17 09:33:18

标签: visual-studio unit-testing

我需要开始集成测试涉及数据访问的BLL区域,我想知道管理测试数据库的最佳方法(需要与我的日常开发数据库分开) 。我可以手动管理这样的数据库,记住每当架构改变时刷新它,但感觉必须有一个更流畅的解决方案。

我的解决方案包括一个单元测试项目和一个SQL Server数据库项目。当我使用EF5(数据库优先)时,我可以在[TestInitialise]期间使用上下文创建数据库,还是只有“代码优先”支持?那么(以某种方式)利用数据库项目的“发布”功能在开始测试运行时创建测试数据库呢?还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

您可以在测试或临时数据库中使用事务吗? 我经常在我的设置中开始交易:

     [SetUp]
        public void SetUp()
        {
            _transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew);
        }

然后将其丢弃在拆解中:

   [TearDown]
        public void TearDown()
        {
            _transactionScope.Dispose();
        }

在某些情况下,对我来说,这减少了对额外数据库的需求。