ConfigurationManager.AppSettings возвращает значение NULL в модульном тестовом проекте
У меня есть проект модульного тестирования C # с настройками приложения вapp.config
файл. Я тестирую класс, который существует в другом проекте. Этот класс зависит от обоих,ConfigurationManager.AppSettings
а такжеConfigurationManager.ConnectionStrings
.
Проект, в котором находится тестируемый класс, не имеет файла app.config. Я бы подумал, что, поскольку класс создается в контексте проекта модульного теста, он будет использовать файл app.config проекта модульного теста. Действительно, похоже, что это действительно так для строки подключения.
Класс извлекает строку подключения без каких-либо проблем. Однако когда класс пытается получить какие-либо настройки приложения, менеджер конфигурации всегда возвращаетnull
, Что здесь происходит?
Редактировать 1
Я подумал, может быть, было бы неплохо попробовать загрузить некоторые настройки в тестовом проекте, чтобы посмотреть, что произойдет. Я попытался загрузить параметр в модульном тесте непосредственно перед вызовом кода, который создает экземпляр класса во внешнем проекте. Тот же результат, ничего. Думаю, я могу пока исключить другой проект из уравнения.
Вот выдержка из моего конфигурационного файла:
<configSections>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MyNamespace.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</sectionGroup>
</configSections>
...
<applicationSettings>
<MyNamespace.Properties.Settings>
<setting name="Bing_Key"
serializeAs="String">
<value>...</value>
</setting>
</MyNamespace.Properties.Settings>
</applicationSettings>
и вот как я пытаюсь загрузить настройки:
string test = System.Configuration.ConfigurationManager.AppSettings["Bing_Key"];