मुझे पता है कि यह एक बहुत पुराना प्रश्न है, लेकिन मैं अपना अनुभव जोड़ना चाहूंगा कि मैंने हाल ही में अलग-अलग परियोजनाओं से यूनिट परीक्षण की आदत को एक में बदल दिया है।
क्यों?
सबसे पहले मैं मुख्य प्रोजेक्ट फ़ोल्डर संरचना को परीक्षण परियोजना के साथ रखने के लिए बहुत तैयार हूं। इसलिए, अगर मेरे पास एक फ़ाइल है, Providers > DataProvider > SqlDataProvider.cs
तो मैं अपनी इकाई परीक्षण परियोजनाओं में समान संरचना बना रहा हूंProviders > DataProvider > SqlDataProvider.Tests.cs
लेकिन परियोजना के बाद और बड़ा हो रहा है, एक बार जब आप फ़ाइलों को एक फ़ोल्डर से दूसरे फ़ोल्डर में स्थानांतरित करते हैं, या एक परियोजना से दूसरी परियोजना के लिए, तो यूनिट परीक्षण परियोजनाओं के साथ सिंक करने के लिए बहुत बोझिल काम हो रहा है।
दूसरा, कक्षा से इकाई परीक्षण कक्षा में परीक्षण के लिए नेविगेट करना हमेशा बहुत आसान नहीं होता है। यह जावास्क्रिप्ट और पायथन के लिए और भी कठिन है।
हाल ही में, मैंने अभ्यास करना शुरू कर दिया है, मैंने जो प्रत्येक फ़ाइल बनाई है (उदाहरण के लिए SqlDataProvider.cs
) मैं टेस्ट प्रत्यय के साथ एक और फ़ाइल बना रहा हूं, जैसेSqlDataProvider.Tests.cs
शुरुआत में ऐसा लगता है कि यह फाइलों और लाइब्रेरी के संदर्भों को उगल देगा, लेकिन लंबे समय तक, आप पहली नज़र में बढ़ते हुए फ़ाइल सिंड्रोम को समाप्त कर देंगे, और यह भी सुनिश्चित करेंगे कि हर एक फ़ाइल जो परीक्षण किए जा रहे हैं, एक जोड़ी फ़ाइल होगी .Tests
प्रत्यय के साथ । यह आपको अलग-अलग प्रोजेक्ट देखने के बजाय टेस्ट फाइल में कूदने में आसान बनाता है (क्योंकि यह साइड है)।
आप प्रोजेक्ट के माध्यम से स्कैन करने और वर्ग की पहचान करने के लिए व्यावसायिक नियम भी लिख सकते हैं। जिसमें फ़ाइल नहीं है, और उन्हें स्वामी को रिपोर्ट करें। साथ ही आप अपने टेस्ट रनर को आसानी से टार्गेट .Tests
क्लास बता सकते हैं ।
विशेष रूप से जेएस और पायथन के लिए आपको अलग-अलग पथ से अपने संदर्भों को आयात करने की आवश्यकता नहीं होगी, आप बस परीक्षण किए जा रहे लक्ष्य फ़ाइल के उसी पथ का उपयोग कर सकते हैं।
मैं थोड़ी देर के लिए इस अभ्यास का उपयोग कर रहा हूं, और मुझे लगता है कि यह परियोजना के आकार बनाम स्थिरता और सीखने की अवस्था के बीच नए कलाकारों के लिए बहुत ही उचित व्यापार-बंद है।