単体テストを書いているライブラリがあります。ライブラリは 2 つのアプリケーションで使用されます。1 つは Windows サービスで、もう 1 つはレジストリの読み書きを行うコマンドライン アプリケーションです。それぞれに、起動時にライブラリからロードされる App.config ファイルがわずかに異なります。例えば:
public RetentionService()
{
SettingHive = new Hive();
TimingService = new RetentionTimingService(SettingHive);
AppSettingsReader asr = new AppSettingsReader();
object appsListObj = asr.GetValue(@"blocking-process-list", Type.GetType(@"System.String"));
string appsList = appsListObj.ToString();
_BlockingAppNames = RetentionService.ListFromList(appsList);
string targetList = asr.GetValue(@"target-files", Type.GetType(@"System.String")).ToString();
_TargetLogs = RetentionService.ListFromList(targetList);
}
単体テストからこのライブラリを使用しようとすると、ライブラリ (おそらく nunit) をロードするアプリケーションに適切なキーを持つ *.exe.config ファイルがないため、ロードに失敗します。
これを行うためのより良い方法は何ですか? 本番環境ではライブラリに各アプリケーションの *.exe.config から設定をロードさせたいのですが、単体テストを実行する場合は 3 番目の場所からロードします。