使用DataSource属性进行单元测试

时间:2010-07-21 09:56:14

标签: c# sql sql-server unit-testing data-driven-tests

我尝试进行第一次简单的数据驱动测试。

  1. 我使用MS SQL Management studio创建了db(UnitTestsDb),还创建了一个db表(UsersTab)。
  2. 我尝试在单元测试中使用此db。代码在这里:

    [TestMethod()]
    [TestProperty("TestCategory","Developer"), 
    DataSource("System.Data.SqlClient",
      "Data Source=.\\SQLEXPRESS;AttachDbFilename=UnitTestsDb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True",
      "UsersTab", DataAccessMethod.Sequential)]
    public void UserConstructorTest()
    {//...}
    

    但是我收到了这个错误:

      

    单元测试适配器无法连接到数据源或读取数据。有关解决此错误的详细信息,请参阅MSDN Library中的“数据驱动单元测试疑难解答”(http://go.microsoft.com/fwlink/?LinkId=62412)。
      错误详细信息:尝试为文件UnitTestsDb.mdf附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。

    我有问题,如何使用SQL Managment studio创建附加的db文件。有什么建议?

1 个答案:

答案 0 :(得分:1)

here开始,您可以尝试:

  1. 将您的连接字符串更新为以下内容:
  2. Driver = {SQL Native Client}; Server =。\ SQLExpress; AttachDbFilename = | DataDirectory | mydbfile.mdf;数据库= dbname;开发Trusted_Connection =是;

    为什么需要数据库参数?如果已附加指定的数据库,则SQL Server不会重新附加它。它使用附加的数据库作为连接的默认值。

    1. 在“身份”标签中的应用程序池属性下,将“网络服务”或“ASP.NET”设置为安全帐户。

    2. 确保您授予“网络服务”或“ASP.NET”帐户的读写权限。提供完整权限并稍后进行调整以使其处于安全(或不安全)状态。