तब तक कुछ करने के लिए गुरु प्रतिबद्ध हो जाता है
मैं आमतौर पर हर एक कमिट पर चलने के लिए अपना CI सेट करता हूं। शाखाओं का परीक्षण नहीं होने तक शाखा में विलय नहीं किया जाता है। यदि आप मास्टर पर चल रहे परीक्षणों पर भरोसा कर रहे हैं, तो यह बिल्ड के टूटने के लिए एक विंडो खोलता है।
CI मशीन पर परीक्षण चलाना प्रजनन योग्य परिणामों के बारे में है। क्योंकि CI सर्वर में आपके VCS से ज्ञात स्वच्छ वातावरण है, आप जानते हैं कि परीक्षा परिणाम सही हैं। स्थानीय रूप से चलाते समय, आप पास करने के लिए उनके लिए आवश्यक कुछ कोड को कम करना भूल सकते हैं, या उनके पास असम्बद्ध कोड होता है जो उन्हें विफल होने पर पास कर देता है।
यह अलग-अलग सुइट्स को समानांतर में चलाकर भी डेवलपर्स का समय बचा सकता है, खासकर अगर कुछ धीमे, बहु-मिनट के परीक्षण हैं जो प्रत्येक परिवर्तन के बाद स्थानीय रूप से चलने की संभावना नहीं है।
मेरे वर्तमान कार्य में हमारे उत्पादन परिनियोजन सीआई पर सभी परीक्षणों को पारित करने पर आधारित है। जब तक वे पास नहीं होते, तब तक परिनियोजन स्क्रिप्ट परिनियोजन को रोक देगी। इससे गलती से उन्हें चलाना भूल जाना असंभव हो जाता है।
सीआई वर्कफ़्लो का हिस्सा होने के साथ-साथ डेवलपर्स का भी बोझ उठाता है। एक डेवलपर के रूप में, क्या आप आमतौर पर हर एक बदलाव के लिए एक लिंटर, स्टेटिक एनालाइज़र, यूनिट टेस्ट, कोड कवरेज और इंटीग्रेशन टेस्ट चलाते हैं? सीआई कर सकते हैं, पूरी तरह से स्वचालित रूप से और इसके बारे में सोचने की आवश्यकता के बिना - निर्णय की थकान को कम करना।