2012-04-05 15 views
5

वीएस 11 में नए नकली ढांचे आपको यूनिट टेस्ट प्रोजेक्ट में असेंबली संदर्भों के नकली (नकली या स्टब) कार्यान्वयन की अनुमति देता है। जब एक विधानसभा का नाटक किया है, VS11 प्रत्येक नकली के लिए दो फ़ाइलों उत्पन्न करता है:क्या FakesAssemblies फ़ाइलों को स्रोत नियंत्रण में जोड़ा जाना चाहिए?

/FakesAssemblies/[Project].Fakes.dll 
/FakesAssemblies/[Project].Fakes.xml 

इन फ़ाइलों स्रोत नियंत्रण करने के लिए जोड़ा जाना चाहिए? मेरी धारणा नहीं है, क्योंकि वे स्वतः उत्पन्न होते हैं, लेकिन सोचते हैं कि किसी के पास अन्य राय हैं।

उत्तर

5

ऑटो-जेनरेट होने के कारण भंडार में मौजूदगी के लिए भेदभाव कारक नहीं होना चाहिए। आखिरकार, सभी प्रकार की ऑटो-जेनरेट की गई फाइलें काफी बार अपना रास्ता बनाती हैं - उदाहरण के लिए डिजाइनर फाइलें।

समस्या यह है कि अतिरिक्त नकली असेंबली उत्पन्न करने में हर समय समय लग सकता है। माइक्रोसॉफ्ट पोस्ट guidelines पर आप इसे अनुकूलित करने का प्रयास कैसे कर सकते हैं:

नकली असेंबली का संकलन आपके निर्माण समय में काफी वृद्धि कर सकता है। आप एक अलग केंद्रीकृत परियोजना में .NET सिस्टम असेंबली और तृतीय-पक्ष असेंबली के लिए नकली असेंबली उत्पन्न करके निर्माण समय को कम कर सकते हैं। चूंकि ऐसी असेंबली आपकी मशीन पर शायद ही कभी बदलती हैं, इसलिए आप अन्य परियोजनाओं में उत्पन्न नकली असेंबली का पुन: उपयोग कर सकते हैं।

तो, शायद ही कभी-बदलते, .NET FCL/3 पार्टी आधारित नकली विधानसभाओं निर्माण प्रक्रिया में तेजी लाने के भंडार का हिस्सा होना चाहिए। आपके स्वयं के कोड के आधार पर, शायद फ्लाई पर सबसे अच्छा उत्पन्न होता है।

1

http://hamidshahid.blogspot.com.au/2012/11/microsoft-fakes-framework.html

"FakesAssemblies" फ़ोल्डर और उस में सभी फाइलों के अनुसार उत्पन्न कर रहे हैं जब भी परियोजना संकलित किया गया है। यह महत्वपूर्ण है क्योंकि यदि आप बदलते घटक के लिए असेंबली के लिए नकली जोड़ रहे हैं, तो की पीढ़ी FakesAssemblies यह सुनिश्चित करेगी कि सभी परिवर्तन जेनरेटेड असेंबली में दिखाई दे रहे हैं।

इसके अलावा in GitHub it is recommended .gitignore

# Microsoft Fakes 
FakesAssemblies 

में उन्हें बाहर करने के लिए आप पीढ़ी के समय के बारे में निर्माण के दौरान चिंता हैं, तो आप केवल निर्दिष्ट कर सकते हैं कि तुम क्या जरूरत है और disable stubs

mscorlib.fakes: 
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"> 
    <Assembly Name="mscorlib" Version="4.0.0.0" /> 
    <StubGeneration Disable="true"/> 
    <ShimGeneration> 
    <Clear /> 
    <Add FullName="System.Environment"/> 
    <Add FullName="System.TimeZoneInfo"/> 
    <Add FullName="System.DateTime"/> 
    </ShimGeneration> 
</Fakes> 
System.fakes: 
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"> 
    <Assembly Name="System" Version="4.0.0.0"/> 
    <StubGeneration Disable="true" /> 
    <ShimGeneration Disable="true" /> 
</Fakes> 
संबंधित मुद्दे

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