Asp.net mvc 3 C#在运行测试之前测试项目擦除数据库

Asp.net mvc 3 C#在运行测试之前测试项目擦除数据库,asp.net-mvc-3,sql-server-2008,unit-testing,Asp.net Mvc 3,Sql Server 2008,Unit Testing,我有一个ASP.NET MVC3应用程序,需要在其中测试数据库包装器类。这是启动和运行。但我需要在测试开始时重新创建数据库。我需要擦除数据库中的所有数据。数据库是一个双重测试 我有创建数据库的SQL脚本。现在,我正在“SQLServer管理器”中运行这本手册,它可以正常工作。但是我希望在新的测试运行之前运行脚本 有人知道怎么做吗?编辑-用一个体面的答案替换 创建一个如下所示的C#类- using System; using NUnit.Framework; namespace NUnit.Te

我有一个ASP.NET MVC3应用程序,需要在其中测试数据库包装器类。这是启动和运行。但我需要在测试开始时重新创建数据库。我需要擦除数据库中的所有数据。数据库是一个双重测试

我有创建数据库的SQL脚本。现在,我正在“SQLServer管理器”中运行这本手册,它可以正常工作。但是我希望在新的测试运行之前运行脚本


有人知道怎么做吗?

编辑-用一个体面的答案替换

创建一个如下所示的C#类-

using System;
using NUnit.Framework;

namespace NUnit.Tests
{
  [SetUpFixture]
  public class MySetUpClass
  {
    [OneTimeSetUp]
    public void RunBeforeAnyTests()
    {
      // Set up my database with SQL scripts run via SqlCommand
    }

    [OneTimeTearDown]
    public void RunAfterAnyTests()
    {
      // tear down my database  with SQL scripts run via SqlCommand
    }
  }
}
应该在任何测试之前只运行一次安装程序,然后在所有测试完成后才卸载一次

我意识到我正在从死亡中复活这一个,但我觉得是时候得到一个像样的答案了

无论如何,有一个更好的方法。模拟您的数据层并进行测试。然后确保SQL Server所做的一切都是以存储过程和函数的形式进行的。然后使用VisualStudio为这些存储过程和函数创建单元测试


如果您的存储库中有逻辑,我建议您抓住并利用它的AutoInterface功能。这样,您的存储库层只是一个接口,您可以轻松地对其进行模拟并继续操作。

将此代码放在单元测试类中。您应该在这里创建所有数据库。TestInitialize在任何测试开始之前运行。这将在单元测试开始时发生一次

    [TestInitialize]
    public void TestInitialize()
    {
        -
    }

我已经有了这个脚本。我删除所有表,然后重新创建它们。但是我不知道如何在我的测试运行之前运行这个脚本。数据库im testing aginst部署在我的本地SQLExpress服务器上。我想您可以从代码中执行,并将脚本的内容用作SqlCommand.Text属性。但我不想在每次测试之前运行操作。我只需要在启动测试运行时使用.sql文件重新创建数据库。