2009-12-14 12 views
7

मैं इकाई परीक्षण और टीडीडी के लिए 'अपेक्षाकृत नया' हूं। हाल ही में मैंने अपना पहला उत्पादन एप्लिकेशन पूरा कर लिया है जिसमें कम से कम सिद्धांत (100% कोड कवरेज) है। मैंने पिछली परियोजनाओं में कुछ समय के लिए यूनिट-परीक्षण किया है, लेकिन वास्तविक टीडीडी फैशन में नहीं और अच्छे कोड कवरेज के साथ। यह हमेशा एक विचार के बाद किया गया था। मुझे लगता है कि अब मुझे इस पर बहुत अच्छी समझ है।टीडीडी के लिए आवश्यक बुनियादी ढांचा?

मैं टीडीडी और यूनिट परीक्षण पर बाकी टीम को प्रशिक्षित करने की भी कोशिश कर रहा हूं ताकि हम टॉगरथ विकसित कर सकें और हमारे सभी अनुप्रयोगों में यूनिट परीक्षण करने के साथ आगे बढ़ना शुरू कर सकें, और अंततः पूर्ण टीडीडी डब्ल्यू/स्वचालित & निरंतर एकीकरण बनाता है। & आलोचनाओं के लिए हमले/प्रशिक्षण एजेंडा की मेरी योजना के संबंध में मैंने a thread here पोस्ट किया।

उत्तर (वास्तव में उच्चतम मतदान) में से एक मैं पहली बार सेटअप बुनियादी ढांचे का सुझाव दिया इससे पहले कि मैं प्रशिक्षण के साथ आगे जाने। दुर्भाग्य से मैं इस के लिए कोई जोखिम है, और विषयों पर googling क्योंकि CruiseControl.NET/Nant/आदि के लिए पृष्ठों वास्तव में व्याख्या नहीं करते मुश्किल है 'क्यों' हम इस सेट करना चाहिए और 'कैसे' सब कुछ togeather जोड़ता है।

हम एक छोटी सी दुकान (लगभग 10 डेवलपर्स) कर रहे हैं और लगभग विशेष रूप से माइक्रोसॉफ्ट प्रौद्योगिकियों का उपयोग और VB.NET में हमारे विकास करते हैं। हम अंततः सी # का उपयोग करना शुरू कर रहे हैं लेकिन यह एक और समय के लिए है। मैं एमएसटीएस्ट प्रोजेक्ट का उपयोग कर रहा हूं जो मेरे यूनिट परीक्षणों के लिए वीएस -2008 के साथ आता है, और मैं विजुअल स्टूडियो का उपयोग करके अपने ऐप्स बना रहा हूं, और एमएसआई सेटअप परियोजनाओं का उपयोग करके तैनाती कर रहा हूं ... हम भी (दुर्भाग्य से) हमारे सूअर नियंत्रण के लिए वीएसएस का उपयोग करते हैं - लेकिन यह चॉपिंग ब्लॉक पर भी है और मैं वास्तव में इसे से छुटकारा पाने और उपversण का उपयोग करना चाहता हूं।

मुझे पता है कि मैं सीआई के लिए CruiseControl.NET उपयोग करने की आवश्यकता है, और या तो Nant या MSBuild अनुप्रयोगों के निर्माण के लिए। और मुझे इन सभी बिल्डों को चलाने के लिए शायद एक बिल्ड सर्वर की आवश्यकता है। लेकिन मुझे बस कुछ भी नहीं मिल रहा है जो बिंदुओं को 'जोड़ता है' और बताता है कि वे एक दूसरे के साथ कैसे बातचीत करते हैं, आपके बिल्ड सर्वर पर क्या होना चाहिए, जब आपको अपने बिल्ड सर्वर के साथ बनाना चाहिए (क्या यह केवल तैनाती के निर्माण के लिए है, या यहां तक ​​कि जब आप बस अपने स्थानीय माहौल पर एक छोटा बदलाव करने के बाद विकसित ऐप को संकलित करना चाहते हैं?)। मैं एमएसटीएस्ट को कुचलने की भी योजना बना रहा हूं क्योंकि मुझे यह छोटी गाड़ी मिल गई है और इसके बजाय nnnit का उपयोग करेगा।

किसी को भी शायद 'उचित बुनियादी ढांचे की स्थापना तो पूरी टीम यह कर सकते हैं और togeather काम' इस अंतर मैं 'जानने कैसे TDD करने के लिए' के ​​लिए से है उजागर कर सकते हैं? मैं समझता हूं कि निरंतर एकीकरण क्या है, लेकिन फिर से, मुझे यकीन नहीं है कि एक बिल्ड सर्वर कैसे स्थापित किया जाना चाहिए और यह सब कुछ के साथ कैसे जुड़ता है, और हमें एक की आवश्यकता क्यों है (उदाहरण के लिए प्रबंधन के लिए पिच)। आपके समय के लिए बहुत बहुत

धन्यवाद।

मुझे अंतिम निर्माता के किस हिस्से की आवश्यकता है? ऐसा लगता है कि अंतिम निर्माता और टीमसिटी के साथ कुछ ओवरलैप है। फ़ाइनबिल्डर सर्वर एक सीआई सर्वर प्रतीत होता है, इसलिए मुझे लगता है कि मुझे इसकी आवश्यकता नहीं है। फाइनलबिल्डर एक बिल्ड सर्वर प्रतीत होता है - लेकिन मैंने सोचा कि टीमसिटी भी एक बिल्ड सर्वर है ... और ऑटोमोज़ एक विजुअल विंडोज ऑटोमेशन टूल प्रतीत होता है, जैसे Winforms ऐप्स के लिए किसी प्रकार का विकास मंच ...

_I भी The Team City Supported Apps Diagram में अंतिम निर्माता के लिए समर्थन न देखें: _

+1

मुझे लगता है कि निम्न लिंक में इस विषय पर जानकारी का काफी संपूर्ण सेट शामिल है: http://martinfowler.com/articles/continuousIntegration.html – Tomas

उत्तर

5

कुछ सप्ताह पहले मैंने एक वेबिनार पर एक नज़र डालें - How To Start Unit Testing Successfully। उस वेबिनार में मैंने टूल और यूनिट परीक्षण सर्वोत्तम प्रथाओं के बारे में बात की है और इसका उद्देश्य डेवलपर्स के लिए ही था जो आपके संगठन में यूनिट परीक्षण शुरू करना चाहते हैं।

व्यापार आप जगह में एक सीआई (सतत एकीकरण) प्रक्रिया डाल करने के लिए और उसके लिए आपको तीन उपकरणों की आवश्यकता होगी चाहते हैं सबसे पहले क्रम:

  1. स्रोत नियंत्रण
  2. बिल्ड सर्वर
  3. बिल्ड क्लाइंट/स्क्रिप्ट

मुझे आशा है कि आपके पास पहले से ही स्रोत नियंत्रण का कुछ रूप है, तो चलिए दूसरे दो के बारे में बात करते हैं।

बिल्ड सर्वर - स्रोत नियंत्रण जाँच करता है और बदले, तो उसे (या कुछ अन्य शर्त पूरी) कुछ ग्राहक पर एक निर्माण स्क्रिप्ट (या एक ही मशीन) कई बिल्ड सर्वर उपलब्ध मेरा सुझाव है देखते हैं चलाता JetBrain के TeamCity इसे स्थापित करने के लिए आसान है और (महान वेब इंटरफेस) का उपयोग करें और 20 डेवलपर्स (यह आप हैं) के लिए नि: शुल्क है।

स्क्रिप्ट बनाएं - अपने बिल्ड क्लाइंट पर आप एक बिल्ड स्क्रिप्ट चलाने के लिए चाहते हैं जो आपके समाधान का निर्माण करे और आपके यूनिट परीक्षण चलाए। TeamCity के पास कुछ बुनियादी निर्माण & परीक्षण क्षमताओं हैं लेकिन अधिक उन्नत विकल्पों (इंस्टॉलर, प्रलेखन इत्यादि) के लिए आपको FinalBuilder का उपयोग करने के लिए कुछ स्क्रिप्ट धावक की आवश्यकता होगी - यह मुफ़्त नहीं है लेकिन बहुत अच्छा संपादक है। यदि आप एक मुफ्त विकल्प की तलाश में हैं तो ANT या NANT पर एक नज़र डालें - लेकिन बहुत सारे एक्सएमएल को संपादित करने के लिए तैयार रहें।

अन्य उपकरण - मैं अगर देखते हैं बेहतर आईडीई के या बाहरी उपकरण है कि मदद मिलेगी डेवलपर्स लिखने & आप की जाँच का सुझाव क्योंकि सफल इकाई परीक्षण का एक महत्वपूर्ण हिस्सा कितना आसान है लिख सकते हैं और डेवलपर के मशीनों पर परीक्षण चलाने के लिए है अपने यूनिट परीक्षण चलाएं।

+1

टीमसिटी के लिए +1। हमने क्रूज़ कंट्रोल.NET के साथ शुरुआत की और टीमसिटी में स्विच किया क्योंकि प्रशासन करने के लिए यह इतना आसान था। एनएएनटी स्क्रिप्ट संपादित करने के लिए बहुत आसान हैं, लेकिन आपको टीमसिटी के साथ बहुत कुछ करने की आवश्यकता नहीं है। – TrueWill

+0

जानकारी के लिए बहुत बहुत धन्यवाद। मैंने अपनी मूल पोस्ट को ध्यान में रखकर नोट किया कि हम वीएसएस का उपयोग करते हैं। हालांकि मैं वीएसएस = से नफरत करता हूं)। मैं सबवर्सन सेटअप प्राप्त करने की उम्मीद कर रहा हूं ताकि हम उस बग्गी वीएसएस से छुटकारा पा सकें। मेरे पास कोई सवाल है - क्या आप अपने निर्माण सर्वर का उपयोग अपने स्वयं के स्थानीय निर्माण को संकलित करने के लिए करते हैं? या यह केवल तैनाती के निर्माण के लिए है? – dferraro

+1

मैं अपनी स्थानीय मशीन पर बिल्ड स्क्रिप्ट चलाता हूं लेकिन आमतौर पर वीएस मेरे प्रोजेक्ट के निर्माण और परीक्षण के लिए पर्याप्त है –

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