Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有DataSource属性的单元测试_C#_Sql_Sql Server_Unit Testing_Data Driven Tests - Fatal编程技术网

C# 具有DataSource属性的单元测试

C# 具有DataSource属性的单元测试,c#,sql,sql-server,unit-testing,data-driven-tests,C#,Sql,Sql Server,Unit Testing,Data Driven Tests,我试着做我的第一个简单的数据驱动测试 我用mssqlmanagementstudio创建了db(UnitTestsDb),还创建了一个db表(UsersTab) 我尝试在单元测试中使用这个db。代码如下: [TestMethod()] [TestProperty("TestCategory","Developer"), DataSource("System.Data.SqlClient", "Data Source=.\\SQLEXPRESS;AttachDbFilename=UnitTe

我试着做我的第一个简单的数据驱动测试

  • 我用mssqlmanagementstudio创建了db(UnitTestsDb),还创建了一个db表(UsersTab)
  • 我尝试在单元测试中使用这个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库中的“数据驱动单元测试疑难解答”()。
    错误详细信息:尝试为文件UnitTestsDb.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定的文件,或该文件位于UNC共享上

    我有问题,如何附加数据库文件创建与SQL管理工作室。有什么建议吗

    从中,您可以尝试:

  • 将连接字符串更新为以下内容:
  • 驱动程序={SQL本机客户端};服务器=。\SQLExpress;AttachDbFilename=|数据目录| mydbfile.mdf;数据库=dbname;可信连接=是

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

  • 在“标识”选项卡的“应用程序池属性”下,将“网络服务”或“ASP.NET”设置为安全帐户

  • 确保向“网络服务”或“ASP.NET”帐户授予读写权限。授予完全权限,并在以后进行调整以确保安全(或不安全)

  • 从中,您可以尝试:

  • 将连接字符串更新为以下内容:
  • 驱动程序={SQL本机客户端};服务器=。\SQLExpress;AttachDbFilename=|数据目录| mydbfile.mdf;数据库=dbname;可信连接=是

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

  • 在“标识”选项卡的“应用程序池属性”下,将“网络服务”或“ASP.NET”设置为安全帐户

  • 确保向“网络服务”或“ASP.NET”帐户授予读写权限。授予完全权限,并在以后进行调整以确保安全(或不安全)