0

web.config からデータベース接続文字列を取得する統合テストがいくつかあります。私の Web コードとテスト コードはすべて 1 つのプロジェクトにあり、これは今までうまくいきました。

アプリ ハーバーにデプロイすると、アプリ ハーバーは 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 に答える