gpt4 book ai didi

asp.net-mvc - 单元测试项目中的连接字符串到 app_data 文件夹中的引用数据库

转载 作者:行者123 更新时间:2023-12-02 01:35:48 25 4
gpt4 key购买 nike

我希望在单元测试项目中引用我的数据库文件。这是一个 ASP.NET MVC 应用程序。

请注意:我知道我不应该在单元测试中访问数据库,但这是为了快速修复我现在需要通过的一项测试。

在下一个里程碑之后,我将 mock 数据库访问方法等。

这是我的 mvc 应用程序 Web 配置中的连接字符串和单元测试 ap.config 文件

<add name="DBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.MDF;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />

当我运行测试时出现错误:

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.

在我看来,连接字符串是错误的,但我不确定如何正确设置路径。我尝试添加\..\.. 和目录名称等。

最佳答案

每次测试运行时,MSTest 都会在完全不同的文件夹中运行单元测试程序集。这个想法是,每次运行都是与之前和后续运行完全隔离的情况。告诉它与应用程序的其余部分一起复制数据文件实际上有点痛苦。您需要右键单击您的解决方案(不是您的项目),选择添加,创建新的测试运行配置。然后,您需要编辑测试运行配置并指定将哪些文件复制到测试执行文件夹。您的解决方案目录应该有一个名为 TestResults 的同级目录,其中包含用于每次测试运行的文件夹。

关于asp.net-mvc - 单元测试项目中的连接字符串到 app_data 文件夹中的引用数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1166883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com