Проблема чтения строки подключения из App.Config при использовании NUnit 2.5.2 - PullRequest
5 голосов
/ 27 октября 2009

Я использую Microsoft Visual Studio 2005 с Enterprise Library 3.1.

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

PSMCP.Dal.Tests.DataManagerTests.GetAAAReturnsDataReader:
System.NullReferenceException : Object reference not set to an instance of an object.

at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseMapper.MapName(String name, IConfigurationSource configSource)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfigurationNameMappingStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id)
at Microsoft.Practices.ObjectBuilder.BuilderBase`1.DoBuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
at Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
at Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp[TTypeToBuild](IReadWriteLocator locator, String idToBuild, Object existing, PolicyList[] transientPolicies)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IReadWriteLocator locator, IConfigurationSource configurationSource)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IConfigurationSource configurationSource)
at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.NameTypeFactoryBase`1.CreateDefault()
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase()
at PSMCP.Dal.PSMCPDataManager.GetAAACall(String searchStr, Int32 filterCategory, Int32 centerId) in C:\Documents and Settings\user1\My Documents\Visual Studio 2005\Projects\Test\AAA.Dal\DataManager.cs:line 61
at PSMCP.Dal.Tests.DataManagerTests.GetAAAReturnsDataReader() in C:\Documents and Settings\user1\My Documents\Visual Studio 2005\Projects\Test\PSMCP.Dal.Tests\DataManagerTests.cs:line 27

Я полагаю, что вызов DatabaseFactory.CreateDatabase () не может прочитать App.Config, чтобы получить строку подключения. Проект модульного теста имеет действительный App.Config, который содержит настройки строки подключения [добавлено утилитой конфигурации EntLib]. Я создал консольное приложение и добавил тот же App.Config, и он отлично работает из консольного приложения. Я запутался, почему он не запускается при запуске из бегуна NUnit GUI.

Есть идеи?

Спасибо, Матрица М.

Ответы [ 2 ]

19 голосов
/ 28 апреля 2011

Вам нужно сообщить nunit имя файла конфигурации. в графическом интерфейсе nunit перейдите в project> edit и затем измените имя файла конфигурации.

Кажется, nunit ищет namespace.config по умолчанию. (например, tb.specs.config в моем случае) enter image description here

8 голосов
/ 16 ноября 2009

Проблема в том, что NUnit ищет файлы конфигурации в корневом каталоге (расположение файлов конфигурации во время разработки). Однако .net перемещает и переименовывает файлы в папку bin. Вы можете изменить настройки nunit для просмотра в корзине при выполнении тестов.

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