Как инициализировать коллекцию ConnectionStrings в NUnit - PullRequest
5 голосов
/ 30 сентября 2008

Я хочу протестировать приложение ASP.NET с использованием NUnit, но кажется, что коллекция WebConfigurationManager.ConnectionStrings пуста при запуске из NUnit GUI.

Не могли бы вы рассказать мне, как инициализировать эту коллекцию (возможно, в функции [SetUp] [TestFixture])? Должен ли я где-нибудь скопировать Web.config?

Спасибо!

Ответы [ 3 ]

9 голосов
/ 05 ноября 2008

Расположение файла NUnit .config зависит от того, как вы создали файл проекта NUnit

Где находятся файлы .config для тестов NUnit, немного сложнее, чем предлагают другие посты. Для этого есть настройки в диалоговом окне NUnit GUI Project / Edit. Все значения по умолчанию зависят от того, как вы создали файл проекта NUnit.

Когда вы открываете графический интерфейс NUnit и выбираете File / Open, а затем выбираете файл .dll, новый проект настраивается с настройками для поиска файла конфигурации с тем же именем, что и у dll в том же каталоге. Так что если вы загрузили \bin\debug\MyTests.dll, NUnit ищет \bin\Debug\MyTests.dll.config по умолчанию. Единственная проблема в том, что при создании сборки выпуска вам нужно создать отдельный проект NUnit.

Если вы создали проект NUnit, выбрав File / NewProject, то по умолчанию используется поиск файла конфигурации с тем же именем, что и у проекта NUnit. Так что если вы создали \MyNUnitProject.nunit NUnit ищет \MyNUnitProject.config по умолчанию.

Скорее всего, вы использовали Visual Studio для создания файла \App.config и поместили его в исходную папку для своей тестовой библиотеки DLL. Когда вы создаете свой тестовый проект, он копируется в \bin\Debug\MyTests.dll.config или \bin\Release\MyTests.dll.config в зависимости от выбранной вами конфигурации. Если вы открыли MyTest.dll непосредственно в NUnit, это будет работать нормально, однако, если вы создали новый проект NUnit, у вас возникнут проблемы, поскольку он не будет искать эти файлы по умолчанию.

Чтобы решить эту проблему, вам нужно открыть диалоговое окно Project / Edit в графическом интерфейсе NUnit и убедиться, что у вас есть две конфигурации Debug & Release, соответствующие вашему .Net проекту. После того, как вы это сделаете, вы можете выбрать конфигурацию отладки и задать для ApplicationBase значение bin\Debug\, а для имени файла конфигурации - MyTests.dll.config. Сделайте то же самое для конфигурации выпуска, и все готово.

7 голосов
/ 30 сентября 2008

Если у вас есть сборка модульного теста с именем Company.Component.Tests.dll, просто убедитесь, что Company.Component.Tests.dll.config там с правильной строкой подключения.

Кроме того, было бы неплохо отделить класс вашего провайдера соединений от конфигурации, чтобы у вас была гибкость в постоянстве (т. Е. Переход от * .config к чему-то еще) и более простое тестирование.

Также посмотрите " Как NUnit находит файлы конфигурации "

1 голос
/ 30 сентября 2008

Вы можете использовать app.config для библиотек (где я предполагаю, что ваши тесты) и поместить их туда.

...