SQL Express 连接字符串的相对路径配置
在您的单元测试项目中,您遇到指定 MDF 数据库位置的挑战文件相对于应用程序的位置。您打算在 app.config 文件中定义连接字符串,但您希望避免像您提供的那样的绝对路径。
使用 |DataDirectory|在非 Web 应用程序中
与您的假设相反,|DataDirectory|不仅适用于Web应用程序,还可以用于非Web应用程序。它表示相对于应用程序目录的占位符路径。根据您的情况,您可以设置 |DataDirectory|值为数据库所在路径的值。
实施解决方案
要实施您所需的解决方案,请按照以下步骤操作:
应用程序配置配置:
使用 |DataDirectory| 在 app.config 中定义连接字符串作为相对路径的占位符:
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
DataDirectory 属性设置:
在您的单元测试类中,使用 |TestInitialize|设置 |DataDirectory| 的方法属性到所需的路径:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); // Rest of initialization code... }
这里,|Databases|文件夹被假定为应用程序目录的子文件夹。
使用此配置,您的单元测试可以使用相对路径访问数据库,无论实际路径如何应用程序的位置。
以上是如何在单元测试中配置 SQL Express 连接字符串的相对路径?的详细内容。更多信息请关注PHP中文网其他相关文章!