2016-05-21 14 views
7

में माइग्रेट करने के बाद एकीकरण परीक्षण टूटा हुआ मेरे एकीकरण परीक्षण में, मैं अपने एकीकरण परीक्षणों के लिए एक परीक्षण सर्वर उदाहरण की ओर काम करने के लिए TestServer कक्षा का उपयोग करता हूं।एएसपी.NET कोर आरसी 2

var server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>()); 

RC2 पर, TestServer.CreateBuilder() हटा दिया गया था: RC1 में, मैं यह निम्नलिखित कोड का उपयोग कर instanciated।

var server = new TestServer(new WebHostBuilder().UseStartup<Startup>()); 

समस्या का सामना करना पड़ रहा हूँ कि RC2 के बाद, क्रम डि के लिए निर्भरता को हल करने में असमर्थ है, इतना है कि यह कॉन्फ़िगर पर अपवाद फेंकता है: इसलिए, मैं निम्नलिखित कोड का उपयोग कर एक नया TestServer बनाने की कोशिश की स्टार्टअप क्लास के लिए विधि। अगर मैं वास्तविक सर्वर शुरू करता हूं (परीक्षण प्रोजेक्ट नहीं) तो सिस्टम तब शुरू होता है।

System.Exception : Could not resolve a service of type 'ShikashiBot.IShikashiBotManager' for the parameter 'botManager' of method 'Configure' on type 'ShikashiBot.Startup'. 

मैं वर्तमान में परीक्षण मेजबान के लिए निम्नलिखित पैकेज का उपयोग कर रहा: Microsoft.AspNetCore.TestHost": "1.0.0-rc2-final

+0

ऐसा लगता है कि आप DI कंटेनर से कुछ प्रकार खो रहे हैं। लेकिन यह प्रकार एएसपी.नेट से नहीं आ रहा है। शायद यह आपके प्रकारों में से एक है 'ShikashiBot.IShikashiBotManager' –

+0

@ विक्टरहर्डुगासी जैसा कि मैंने अपनी मूल पोस्ट में कहा था, अगर ऐसा होता तो मेरा आवेदन शुरू नहीं होता अगर मैंने इसे सामान्य के रूप में शुरू किया। माइग्रेशन के दौरान डी कंटेनर में जोड़े गए आइटम में कोई भी बदलाव नहीं था। – Martin

+0

क्या आप वाकई 'Program.cs' में कुछ नहीं है जो' स्टार्टअप 'में शामिल नहीं है? –

उत्तर

7

मैं कुछ परिवर्तन चाहते हैं उसे प्राप्त करने के लिए अपने काम करने के लिए रेपो:

  1. मैं अपवाद उत्पन्न निम्नलिखित के रूप में है appsettings.sample.json से appsettings.json का नाम बदलना पड़ा, मुझे लगता है कि यह इसलिए है क्योंकि यह स्रोत नियंत्रण में नहीं है।
  2. मुझे इंटीग्रेशनटेस्ट प्रोजेक्ट के project.json पर "buildOptions": { "copyToOutput": [ "appsettings.json" ] } जोड़ना पड़ा।
  3. आपके appsettings.json में लॉग स्तर Verbose से Debug को बदलना पड़ा।

लेकिन इस के बाद एकीकरण परीक्षण EndPointsRequiresAuthorization निर्भरता इंजेक्शन के माध्यम से चला जाता है, और मेरे लिए यह एक अपवाद ShikashiBotManager में, मुझे लगता है क्योंकि मैं Postgre डीबी की स्थापना की जरूरत नहीं है के साथ विफल रहता है।
आपके लिए यह पहले से ही विफल हो गया है, क्योंकि यह IShikashiBotManager इंटरफ़ेस को हल नहीं कर सकता है, है ना? पुनर्निर्माण, और फिर कोशिश करें:

आप के साथ git clean -xfd अपने स्थानीय भंडार की एक पूरी पर्ज करने की कोशिश कर सकते हैं (अपने नहीं प्रतिबद्ध स्थानीय परिवर्तन हटा दिए जाएंगे नोट)?

+0

ऐसा लगता है कि गुम कॉन्फ़िगरेशन (चरण 2) मेरी समस्या का मुख्य कारण था। मुझे अभी भी यह अजीब लगता है कि एक अनुपलब्ध कॉन्फ़िगरेशन फ़ाइल IShikashiBotManaged को अनसुलझा करने का कारण बनती है। चीयर्स! – Martin

+0

.NET कोर प्रकारों का संकल्प वास्तव में एक बहुत ही अजीब प्रक्रिया प्रतीत होता है। Project.json की आंतरिक कार्यप्रणाली के रहस्य कुछ समय के लिए अस्पष्ट रह सकते हैं। –

संबंधित मुद्दे