Доступ к настройкам App.Config из библиотеки классов, вызываемой через тестовый проект

У меня есть следующие настройки:

ASP.net 3.5 Проект веб-сайтаБиблиотека классов C # с бизнес-логикойБиблиотека классов C # для модульного тестирования

Библиотека бизнес-логики выполняет весь доступ к БД. Он получает строки подключения из файла web.config веб-сайта, открывая System.Configuration.ConfigurationManager.ConnectionStrings. Когда библиотека вызывается веб-сайтом, это прекрасно работает, так как библиотека ищет конфигурацию вызывающей стороны.

Я хочу иметь возможность проверить свою бизнес-логику через библиотеку классов модульного тестирования. Я поместил файл App.config в корень библиотеки классов тестирования. Из того, что я прочитал, когда библиотека тестирования вызывает процедуры доступа к данным, которые являются частью библиотеки бизнес-логики, необходимо получить доступ к параметрам подключения из файла App.config библиотеки тестирования и использовать их. Однако когда я пытаюсь запустить свои модульные тесты, я получаю сообщения об ошибках, которые указывают на то, что библиотека тестирования 'Файл App.config (и / или его содержимое) не был успешно доступен.

Мой поиск свойств конфигурации (из библиотеки бизнес-логики) выглядит следующим образом:

public SqlConnection MainConnection {
  get {
    string conn = "";
    try {
      conn = System.Configuration.ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
    } catch {
      // might be calling from test project. Need to reference app settings
      conn = System.Configuration.ConfigurationManager.AppSettings["connString"];
    }
    return new SqlConnection(conn);
  }
}

Когда это вызывается из проекта сайта, это работает. В модульном тесте переменная conn никогда не устанавливается на что-либо (я также пробовал System.Configuration.ConfigurationSettings.AppSettings и использую вместо того же результата). Что мне нужно сделать, чтобы библиотека классов бизнес-логики успешно извлекала настройки библиотек классов модульного теста при вызове из графического интерфейса NUnit?

Ответы на вопрос(4)

Ваш ответ на вопрос