0

我有一些从 web.config 获取数据库连接字符串的集成测试。我的 web 代码和我的测试代码都在一个项目中,到目前为止效果很好。

当部署在 app Harbor 时,app Harbor 会替换 web.config 中的值,但在 Visual Studio 单元测试环境中时,不会提取该值。

进行单元测试时,有没有办法从 web.config 中提取值?

这是我的代码:

private static string GetMongoDbConnectionString()
    {
        string con = ConfigurationManager.AppSettings.Get("MONGOHQ_URL") ??
            ConfigurationManager.AppSettings.Get("MONGOLAB_URI") ??
            "mongodb://www.fromCSFile/test";
        return con;
    }

这是我的 web.config

<appSettings>
    <add key="MONGOLAB_URI" value="mongodb://www.fromweb.config/test"/>
4

1 回答 1

0

让应用程序港口注入正确的配置设置,我无法让它工作,但我已经接近了。

我在我的 Web 项目中添加了一个 app.config,因为我的 Web 项目中有我的集成测试。

我将环境应用设置添加到 app.config:

<appSettings>

<add key="Environment" value="localconfig"/>

我注意到当该代码在应用程序港口上运行时,环境值为 Test:27017。

我写了这段代码:

private static string GetMongoDbConnectionString()
{
    string con = ConfigurationManager.AppSettings.Get("MONGOHQ_URL") ??
                ConfigurationManager.AppSettings.Get("MONGOLAB_URI");
    string env = ConfigurationManager.AppSettings.Get("Environment");
    if (env.StartsWith("Test", StringComparison.OrdinalIgnoreCase))
    {
        con = "mongodb://xxxxxxxxx";
    }
    return con;
}

其中 xxxxxxxxx 是我想在集成测试时使用的值。

于 2013-09-14T07:14:51.980 回答