जब प्रत्येक कमिटमेंट में परीक्षणों को निष्पादित करने का एक निरंतर एकीकरण होता है, तो एक सामान्य सर्वोत्तम अभ्यास यह होता है कि सभी परीक्षण हर समय गुजर रहे हों (उर्फ "बिल्ड न तोड़ें")।
मुझे इसके साथ कुछ समस्याएं हैं:
उदाहरण के लिए, कोई भी टिकट के अनुरूप परीक्षण बनाकर एक ओपन सोर्स प्रोजेक्ट की मदद नहीं कर सकता है। मुझे पता है कि अगर मैं एक ओपन सोर्स प्रोजेक्ट में एक असफल अनुरोध का प्रस्ताव देता हूं जिसमें असफल परीक्षण होता है, तो निर्माण को असफल के रूप में चिह्नित किया जाएगा और परियोजना यह नहीं चाहेगी कि इसका भंडार में विलय हो जाए क्योंकि यह "बिल्ड को तोड़ देगा"।
और मुझे विश्वास नहीं है कि आपके रेपो में विफल परीक्षण होना एक बुरी बात है , यह आपके ट्रैकर में खुले मुद्दों की तरह है। ये सिर्फ तय होने की प्रतीक्षा की चीजें हैं।
एक ही कंपनी में जाता है। यदि आप TDD के साथ काम करते हैं, तो आप परीक्षण नहीं लिख सकते, कमिट कर सकते हैं और फिर परीक्षण को पूरा करने वाले तर्क कोड लिख सकते हैं। इसका मतलब है कि अगर मैंने अपने लैपटॉप पर 4-5 टेस्ट लिखे हैं, तो मैं छुट्टियों पर जाने से पहले उन्हें कमिट नहीं कर सकता। कोई भी मेरा काम वापस नहीं ले सकता। मैं उन्हें उदाहरण के लिए ईमेल द्वारा भेजने के अलावा किसी सहकर्मी के साथ "साझा" भी नहीं कर सकता। यह परीक्षण लिखने वाले एक व्यक्ति के साथ काम करने से भी रोकता है, अन्य एक मॉडल लिख रहा है।
यह सब कहने के लिए, क्या मैं निर्माण प्रक्रिया / निरंतर एकीकरण का गलत उपयोग / गलतफहमी कर रहा हूं? यह मुझे लगता है कि "गुजर" / "नहीं गुजरना" एक बहुत ही संकीर्ण संकेतक है।
क्या निरंतर एकीकरण और टीडीडी को संगत बनाने का एक तरीका है?
हो सकता है कि "नए परीक्षणों" (जो विफल हो सकते हैं) और "प्रतिगमन परीक्षण" (जो कि वे काम नहीं करते थे, क्योंकि उन्हें काम नहीं करना चाहिए) को अलग करने के लिए एक मानक समाधान / अभ्यास है ?