gpt4 book ai didi

unit-testing - 如何在 Visual Studio 2012 和 Entity Framework 5 中设置 LocalDb 进行单元测试

转载 作者:行者123 更新时间:2023-12-03 05:41:13 24 4
gpt4 key购买 nike

我们有一个使用 Entity Framework 5 的 Visual Studio 2012 ASP.NET MVC 项目。

有一些单元测试依赖于数据库。在测试项目中设置 app.config 文件以使用中央 SQL Server 数据库效果很好。

但是,使用 LocalDb 会更好,这样每个开发人员在运行测试时都有自己的数据库。特别是因为我们希望在运行时将测试设置为 DropCreateDatabaseAlways

但是,我无法让设置正常工作。如果我在 app.config 中尝试这个:

<add name="TestDb" 
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=unittestdb;
Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\unittestdb.mdf"
providerName="System.Data.SqlClient" />

我得到:

System.Data.SqlClient.SqlException: A file activation error occurred. The physical file name '\unittestdb.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation. CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

听起来它希望 mdf 文件已经存在,这看起来很奇怪,因为它正在尝试创建数据库。手动创建 mdf 文件不会更改错误消息。

最佳答案

尝试:

AppDomain.CurrentDomain.SetData(
"DataDirectory", Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ""));

这将在/bin/Debug/yourdbname.mdf 上创建数据库文件

关于unit-testing - 如何在 Visual Studio 2012 和 Entity Framework 5 中设置 LocalDb 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244495/

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