测试 - 缺少连接字符串

问题描述 投票:23回答:4

Visual Studio基于一种方法为我创建了一个单元测试项目(右键单击添加测试)。当我尝试访问数据库时,我得到一个例外。抛出此代码以查看我的连接是什么:

ConnectionStringSettings connStringSettings = ConfigurationManager.
    ConnectionStrings["myConnectionString"];

但是,connStringSettings是空的。经过检查,ConnectionStrings集合只有一个。它似乎不是从我的web.config读取。

我的DAL是隔离的,不能通过代码设置其连接字符串。它的连接字符串在代码中设置如下:

set
{
    value = System.Configuration.ConfigurationManager.
        ConnectionStrings["myConnectionString"].ConnectionString;
}

我该如何解决这个问题?

c# visual-studio-2010 web-config connection-string integration-testing
4个回答
55
投票

App.config文件添加到单元测试项目中,并复制Web.config中的连接字符串。

Update: Better Solution

虽然添加配置将解决当前的问题,但它仍然会导致单元测试,具体取决于实际的数据库连接,这不是很好。解决此问题的更好方法是完全模拟DAL并将其传递给正在使用它的服务。

Microsoft提供了有关here的一些指导。设置需要更多的时间,但它允许测试更加包含和完整。


6
投票

优秀这对我有用。我在单元测试项目下添加了App.config文件。但请确保我们应该遵循synatx,否则会抛出异常。

<connectionStrings>

    <add name="test" connectionString="" providerName="System.Data.SqlClient" />

    <add name="db" connectionString=""" providerName="System.Data.SqlClient"/>

</connectionStrings>


5
投票

在单元测试的app.config文件中添加连接字符串。单元测试项目无法访问您的Web项目的Web配置。


-3
投票

另一个解决方案是转到解决方案属性页面(解决方案 - >属性)

启动项目 - 检查单个启动项目是否具有配置。

选择,确定 - 完成。

© www.soinside.com 2019 - 2024. All rights reserved.