2009-10-27 6 views
5

का उपयोग करते समय App.Config से कनेक्शन स्ट्रिंग पढ़ने में समस्या मैं एंटरप्राइज़ लाइब्रेरी 3.1 के साथ माइक्रोसॉफ्ट विजुअल स्टूडियो 2005 का उपयोग कर रहा हूं।NUnit 2.5.2

मेरे पास डेटा एक्सेस लेयर है जो एक अलग दृश्य स्टूडियो क्लास लाइब्रेरी प्रोजेक्ट है। मैं एक अन्य वर्ग पुस्तकालय में इकाई परीक्षण लिखा था और डेटा का उपयोग विधि कॉल करने की कोशिश कर रहा है, लेकिन मैं

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 पढ़ने में सक्षम नहीं है संबंध तार। यूनिट टेस्ट प्रोजेक्ट में एक वैध ऐप है। कॉन्फिग जिसमें कनेक्शन स्ट्रिंग सेटिंग्स शामिल हैं [एंटीलिब कॉन्फ़िगरेशन उपयोगिता द्वारा जोड़ा गया]। मैंने एक कंसोल एप्लिकेशन बनाया और उसी ऐप को जोड़ा। कॉनफिग और यह कंसोल एप्लिकेशन से ठीक चलाता है। मैं उलझन में हूं कि एनयूएनआईटी जीयूआई धावक से चलते समय यह क्यों नहीं चलेंगे।

कोई भी विचार?

धन्यवाद, मैट्रिक्स एम

उत्तर

8

मुद्दा यह है कि NUnit रूट निर्देशिका (config फाइल के डिजाइन समय स्थान) में config फ़ाइलों को ढूँढेंगे है। हालांकि, .NET फ़ाइलों को बिन फ़ोल्डर में स्थानांतरित और पुनर्नामित करता है। परीक्षण निष्पादित करते समय आप बिन में देखने के लिए नूनिट सेटिंग्स बदल सकते हैं।

+0

बिल्कुल। Http://stackoverflow.com/questions/666898/nunit-not-picking-up-app-settings/3608544#3608544 – abatishchev

+4

लिंक टूटा हुआ है और देखें। किसी भी मौके पर सवाल का नाम बदल दिया गया था या हटा दिया गया था? – craastad

18

आपको कॉन्फ़िगर फ़ाइल नाम ननिट बताना होगा। नुनिट गुई में प्रोजेक्ट पर जाएं> संपादित करें और फिर कॉन्फ़िगरेशन फ़ाइल नाम बदलें।

ऐसा लगता है कि डिफ़ॉल्ट रूप से nunit namespace.config के लिए दिखता है। (उदाहरण के लिए मेरे मामले में tb.specs.config) enter image description here

+0

मैं यह जोड़ना चाहता हूं कि आपके द्वारा कॉन्फ़िगरेशन फ़ाइल नाम में दर्ज की गई फ़ाइल .nunit फ़ाइल के सापेक्ष है। मुझे इसे खोजने के लिए "\ {मेरा प्रोजेक्ट नाम} \ app.config" करना था। ग्रेट उत्तर। – BillRob