यह सुनिश्चित करें कि परीक्षण को ठीक किए बिना वास्तव में कुछ भी जारी करना असंभव है।
- किसी भी परीक्षण में विफल होने पर बिल्ड को विफल करें।
- किसी भी परीक्षण को नजरअंदाज किए जाने पर बिल्ड को विफल करें।
- बिल्ड को विफल करें यदि परीक्षण कवरेज एक निश्चित स्तर से नीचे चला जाता है (इसलिए लोग इसके चारों ओर काम करने के लिए परीक्षण को हटा नहीं सकते हैं)।
- अपने रिलीज़ बिल्ड को करने के लिए CI सर्वर का उपयोग करें, और केवल UAT / स्टेजिंग / प्रोडक्शन / जो भी हो, को बढ़ावा देने के लिए सर्वर के बिल्ड ड्रॉप से बिल्ड की अनुमति दें।
इस मामले का तथ्य यह है कि यदि आपका निर्माण एक बार में लगभग 15 मिनट से अधिक समय तक टूटा हुआ है (और इसमें परीक्षण विफल हो रहे हैं ), तो आप निरंतर एकीकरण नहीं कर रहे हैं ।
"नाभिकीय विकल्प" आपके स्रोत नियंत्रण सर्वर के पास बिल्ड को तोड़ने वाले व्यक्ति के अलावा किसी भी उपयोगकर्ता से कमिट / चेकइन करने से इंकार करना है। स्पष्ट रूप से एक व्यवस्थापक को अस्थायी रूप से इसे ओवरराइड करने में सक्षम होने की आवश्यकता है यदि उक्त व्यक्ति छुट्टी पर जाता है - लेकिन, अगर हर कोई जानता है कि पूरी टीम को उनके परीक्षणों को ठीक करने तक खराब कर दिया जाता है, तो वे इसे जल्दी से हल करने का संकल्प लेंगे।
एक अच्छी नीति (जो कि स्वचालित होने पर और भी बेहतर है) निर्माण विफल होने के 15 मिनट के बाद स्रोत को अंतिम ज्ञात स्थिर प्रतिबद्ध पर वापस करना है। दूसरे शब्दों में, यदि आप इसे ठीक नहीं कर सकते हैं, या नहीं जानते हैं कि निर्माण या परीक्षण के टूटने का क्या कारण है, तो इसे वापस कर दें और स्थानीय रूप से तब तक काम करें जब तक कि यह हल न हो जाए - कभी भी अन्य डेवलपर्स को अपने अंगूठे को मोड़ना नहीं चाहिए जब आप एक पर दूर पीसते हैं समस्या वे परवाह नहीं करते।
PS यदि आपके पास पहले से ही बहुत सारे परीक्षण विफल हैं, तो आप CI में "ट्रेलिंग थ्रेसहोल्ड" का उपयोग कर सकते हैं। इसे सेट करें ताकि पिछली बार की तुलना में अधिक परीक्षण विफल होने पर बिल्ड केवल विफल हो जाए । यह एक कवरेज नियम के साथ, डेवलपर्स को अंततः परीक्षण की स्थिति में सुधार करने के लिए मजबूर करेगा यदि वे काम करने में सक्षम होना चाहते हैं।
पीपीएस मुझे लगता है कि यह कुछ के लिए कमजोर लग सकता है, लेकिन यह सब आपकी संस्कृति नीचे है। यदि आप एक ऐसे बिंदु पर पहुंच जाते हैं, जहां लोग बिल्ड टूटे हुए या परीक्षणों को विफल नहीं छोड़ते हैं (मेरी टीम लगभग कभी नहीं करती है, हालांकि मुझे कभी-कभी उन्हें याद दिलाना पड़ता है), तो आपको नियमों के सबसे सख्त सेट के साथ जारी रखने की आवश्यकता नहीं है। हालांकि IMO आपको एक टूटी हुई इकाई परीक्षण पर निर्माण को हमेशा विफल करना चाहिए। एकीकरण / ब्राउज़र परीक्षण कभी-कभी विफल हो सकते हैं।