测试 - 缺少连接字符串

时间:2012-02-27 19:40:22

标签: c# visual-studio-2010 web-config connection-string integration-testing

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

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

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

我的DAL已隔离,无法通过代码设置其连接字符串。它的连接字符串设置如下代码:

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

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:55)

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

更新:更好的解决方案

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

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

答案 1 :(得分:6)

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

<connectionStrings>

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

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

</connectionStrings>

答案 2 :(得分:5)

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

答案 3 :(得分:-3)

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

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

选择,确定 - 完成。