Модульное тестирование сборки C # с App.Config возвращает исключение - PullRequest
2 голосов
/ 13 января 2012

У меня есть 3 проекта решения, которые включают в себя мой DAL, сборку и мой проект модульного тестирования. Я использую ReSharper.

Следующее поле в моем DAL возвращает значение NULL для объекта SectionHandler:

  public static DatabaseFactorySectionHandler SectionHandler =
        (DatabaseFactorySectionHandler) ConfigurationManager.GetSection("DatabaseFactoryConfiguration");

Это строка из класса Factory. Другой класс, который наследует его, пытается инициализировать поле из своего конструктора.

Я вспомнил, что мне нужно было добавить мой файл App.config в мой проект Unit Test (он указывал на Machine.config). Тем не менее, это не решило проблему. Вместо этого я получаю при попытке выполнить мой тест:

>     failed: Configuration system failed to initialize System.Configuration.ConfigurationErrorsException: Configuration
> system failed to initialize --->
> System.Configuration.ConfigurationErrorsException: Unrecognized
> configuration section section.
> (C:\projects\MyAssembly.Tests\bin\Debug\MyAssembly.Tests.dll.temp.config
> line 3)

Чего я не понимаю, так это именования файла конфигурации. В моем каталоге я вижу, что App.config был правильно переименован (MyAssembly.Tests.dll.config), но нет никаких признаков temp.config.

Вот мой app.config (это то, что в данный момент находится в моем тестовом проекте, в решении нет других App.configs)

    <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="DatabaseFactoryConfiguration" type="MyClass.DatabaseFactorySectionHandler, MyClass.DBConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  </configSections>
  <connectionStrings>
    <clear/>
    <add name="Connector1" providerName="MyProvider" connectionString="myConnString" />
    <add name="DB2Connector" providerName="IBM.Data.DB2" connectionString="myConnString2" />
  </connectionStrings>

  <DatabaseFactoryConfiguration Name="MyClassHere" ConnectionStringName="Connector1" />
  <DatabaseFactoryConfiguration Name="MyOtherClassHere" ConnectionStringName="DB2Connector" />
</configuration>

Почему я не могу заставить проект модульного теста распознать мой файл конфигурации? Благодаря.

1 Ответ

1 голос
/ 13 января 2012

Оказывается, проблема связана с наличием нескольких элементов DatabaseFactoryConfiguration в файле app.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...