ddd*_*ddd 7 asp.net-mvc unit-testing connection-string
我希望在我的单元测试项目中引用我的数据库文件.这是一个ASP.NET MVC应用程序.
请注意:我知道我不应该在我的单元测试中访问数据库,但这是为了快速修复我需要通过的一个测试.
在下一个里程碑之后,我将嘲笑数据库访问方法等.
所以这是我的mvc app web config中的连接字符串和单元测试ap.config文件
<add name="DBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.MDF;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我收到一个错误:
Test method
ED.Tests.Controllers.CandidateControllerTest.PersonalDetailsStepPostShouldRedisplayIfNoSurnameSupplied
threw exception: System.Data.SqlClient.SqlException:
An attempt to attach an auto-named database for file C:\Users\Desktop\ED\TestResults\LAPTOP-D 2009-07-22 18_16_20\Out\DB.MDF failed.
A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
Run Code Online (Sandbox Code Playgroud)
在我看来,连接字符串是错误的,但我不知道如何正确设置路径.我试过添加\ ..\..和目录名等.
每次测试运行时,MSTest 都会在完全不同的文件夹中运行单元测试程序集。这个想法是,每次运行都是与之前和后续运行完全隔离的情况。告诉它与应用程序的其余部分一起复制数据文件实际上有点痛苦。您需要右键单击您的解决方案(不是您的项目),选择添加,创建新的测试运行配置。然后,您需要编辑测试运行配置并指定将哪些文件复制到测试执行文件夹。您的解决方案目录应该有一个名为 TestResults 的同级目录,其中包含用于每次测试运行的文件夹。