Ich verwende Microsoft Visual Studio 2005 mit Enterprise Library 3.1.
Ich habe eine Datenzugriffsschicht, die eine separate Visual Studio-Klassenbibliothek-Projekt ist. Ich schrieb Unit-Tests in einer anderen Klassenbibliothek und versuche, die Datenzugriffsmethode aufzurufen, aber ich erhalte immer
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
Ich vermute, dass der DatabaseFactory.CreateDatabase()-Aufruf nicht in der Lage ist, die App.Config zu lesen, um die Verbindungszeichenfolge zu erhalten. Das Unit-Test-Projekt hat eine gültige App.Config, die die Einstellungen für die Verbindungszeichenfolge enthält [hinzugefügt von EntLib config utility]. Ich habe eine Konsolenanwendung erstellt und dieselbe App.Config hinzugefügt, und sie läuft problemlos über die Konsolenanwendung. Ich bin verwirrt, warum es nicht laufen würde, wenn es von NUnit GUI runner ausgeführt wird.
Irgendwelche Ideen?
Danke! Matrix M.