使用NUnit 2.5.2时从App.Config读取连接字符串时出现问题

Tec*_*rix 5 nunit enterprise-library

我正在使用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
Run Code Online (Sandbox Code Playgroud)

我想DatabaseFactory.CreateDatabase()调用无法读取App.Config来获取连接字符串.Unit Test项目有一个有效的App.Config,它包含连接字符串设置[由EntLib config utility添加].我创建了一个控制台应用程序并添加了相同的App.Config,它从Console应用程序运行良好.我很困惑为什么从NUnit GUI运行时运行它不会运行.

有任何想法吗?

谢谢,Matrix M.

sky*_*oot 19

您需要告诉nunit配置文件名.在nunit gui中,转到项目>编辑,然后更改配置文件名.

看来nunit默认会查找namespace.config.(例如,在我的情况下为tb.specs.config) 在此输入图像描述


dev*_*ife 8

问题是NUnit在根目录中查找配置文件(配置文件的设计时位置).但是,.net会将文件移动并重命名为bin文件夹.您可以更改nunit设置以在执行测试时查看bin.

  • 链接坏了.问题是否有可能被重命名或删除? (4认同)