У меня есть следующие настройки:
- Проект веб-сайта 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?