Неправильный файл конфигурации при запуске тестов NUnit (TD.NET) - PullRequest
5 голосов
/ 18 мая 2011

У меня есть компонент, который считывает некоторую конфигурацию из стандартного файла конфигурации .NET (app.config).

когда я запускаю модульные тесты (NUnit) для этого компонента (используя TD.NET), я заметилчто файл конфигурации не читается.

После проверки AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

я заметил, что его 'значение установлено в C: \ Users \ ltal \ AppData \ Local \ Temp \ tmp6D2F.tmp (некоторое временное случайное расположение).

Есть ли причина, по которой это происходит?(Это ошибка NUnit или TD.NET?)

Полагаю, я мог бы сам установить этот объект SetupInformation для теста, еще не пробовал, но все еще задаюсь вопросом, почему он создается таким образом, ине по умолчанию.

Ответы [ 2 ]

3 голосов
/ 18 мая 2011
  • Чтобы обойти это, вы можете создать app.config в вашем модульном тестовом проекте. Затем он будет вызываться вместо основного app.config модульными тестами. Затем вы можете изменить значения в этом app.config в своих модульных тестах, чтобы упростить тестирование различных значений и конфигураций, т. Е. Вы можете настроить свой тестовый app.config с определенными значениями перед запуском теста.

    ConfigurationManager.AppSettings[""] = "";

  • Другим вариантом может быть размещение настроек в файле Settings.setting вашего основного проекта. Вам не нужно ничего менять в своем проекте модульного тестирования. Некоторые ссылки о разнице между настройками и app.config - Форумы MSDN , StackOverflow , Настройки пользователя - MSDN

  • И, конечно, третий вариант - удалить зависимость от app.config из вашего компонента, введя интерфейс и внедрив зависимость в компонент, облегчая его макет и модульное тестирование.

1 голос
/ 18 мая 2011

По умолчанию среда выполнения .NET ищет в рабочем каталоге AppDomain, который управляется NUnit во временном расположении.

Эта ссылка предлагает два решения о том, как получить файлы конфигурации.:

http://blogs.msdn.com/b/josealmeida/archive/2004/05/31/loading-config-files-in-nunit.aspx

По сути, они должны находиться в каталоге тестирования.

...