Я использую MSTest под Visual Studio 2010 для тестирования проекта ASP.NET MVC 3. У меня есть БД SQL Express 2005, которую я хотел бы использовать, и я хочу каждый раз обновлять экземпляр БД, скопированный из шаблона, который я включил в проект. Довольно стандартные требования, но я не могу заставить это работать.
Я создал файл .testsettings, который разрешает развертывание, и моя строка подключения выглядит следующим образом:
<add name="MyDb" connectionString="Data Source=.\SQLEXPRESS2005;Database=MyDbTest;AttachDBFilename=|DataDirectory|MyDbTest.mdf;User Instance=true;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
Тест выполняется нормально в первый раз, но после этого он завершается неудачей с такими ошибками:
Test method ... threw exception: System.Data.DataException: An exception occurred while initializing the database. See the InnerException for details. ---> System.Data.EntityException: The underlying provider failed on Open.
---> System.Data.SqlClient.SqlException: Database '...\bin\Debug\MyDbTest.mdf' already exists. Choose a different database name. Cannot attach the file '...\Out\MyDbTest.mdf' as database 'MyDbTest'.
Принятый ответ в этой MSDN thead говорит об удалении параметра строки подключения «Database =». Однако, если я это сделаю, то произойдет сбой с этой ошибкой:
Test method ... threw exception:
System.InvalidOperationException: Unable to complete operation. The supplied SqlConnection does not specify an initial catalog.
Как мне заставить это работать?