असफल परीक्षा को आगे बढ़ाने के लिए कहां?


14

मैंने सिर्फ अपने GitHub रिपॉजिटरी पर शाखा सेटिंग्स बदल दीं, ताकि मेरी [अगली] शाखा को एक पुल अनुरोध के माध्यम से एक गुजरने वाले CI बिल्ड की आवश्यकता हो।

परीक्षण विफल होने के बारे में टीम के कई सदस्यों के साथ चर्चा हुई।

संदर्भ के लिए ...

रिपॉजिटरी की एक [मास्टर] शाखा है जो केवल तभी रिलीज़ होती है जब कोई रिलीज़ होती है, इसलिए [मास्टर] में अंतिम रिलीज़ के रूप में कोड होता है , भले ही यह एक प्रमुख, एक मामूली, एक हॉटफ़िक्स, एक बीटा, अल्फा / रिलीज से पहले निर्माण।

[अगली] शाखा "डिफ़ॉल्ट" एक है, जहां हम "रिलीज़-रेडी" कोड रखने का इरादा रखते हैं ; तकनीकी रूप से वह शाखा किसी भी समय [मास्टर] में जारी हो सकती है, और जारी की जा सकती है।

अलग-अलग कांटे की अपनी देव शाखाएँ हैं, और PR [अगला] में योगदानकर्ता हैं।

जब मैं एक गैर-तुच्छ पीआर की समीक्षा करता हूं, तो मैं योगदानकर्ता की देव शाखा को अपनी "समीक्षा" शाखा में विलीन कर दूंगा, और अगर मुझे ऐसी चीजें दिखाई दें, जिन्हें मैं जल्दी ठीक कर सकता हूं तो मैं बदलाव / पुश परिवर्तन और नए (कभी-कभी विफल) परीक्षण करूंगा, और पीआर योगदानकर्ता की देव शाखा में वापस; जब वे मेरे परिवर्तनों को मर्ज करते हैं, तो नए असफल परीक्षण पास करते हैं, और फिर धक्का देते हैं, उनका पीआर सिंक्रनाइज़ करता है, और फिर मैं पीआर को [अगले] में विलीन कर दूंगा।

लेकिन यह सवाल पासिंग टेस्ट के बारे में नहीं है , यह फेल होने वालों के बारे में है।


फेलिंग टेस्ट डॉक्यूमेंट जो तय होना चाहिए।

ज्ञात बग में परीक्षण के लिए लिखा होना चाहिए, ताकि हमें पता चले कि क्या काम नहीं कर रहा है।

तकनीकी तौर पर GitHub मुद्दों सूची (के लिए फ़िल्टर और / या लेबल ) वह भी करता है। क्या दस्तावेज़ों के बग में विफल परीक्षणों का एक गुच्छा भी एक अच्छा अभ्यास है ?

[अगला] पर एक असफल निर्माण का मतलब होगा कि हम रिलीज़-रेडी नहीं हैं ... लेकिन फिर "रिलीज़-रेडी" होना थोड़ा सा है जैसे "तैयार रहना" बच्चों को करना है - आप इसके लिए कभी भी तैयार नहीं हैं , और कुछ, कहीं (चर महत्व का) अनिवार्य रूप से रिलीज के साथ गलत हो जाएगा।


इसलिए हम केवल पासिंग टेस्ट को [अगले] पर धकेल रहे हैं। फ़ेल होने वाले परीक्षणों को कहाँ धकेलें? मेरा मतलब है, पीआर / समीक्षा प्रक्रिया के बाहर?

उदाहरण के लिए, एक उपयोगकर्ता मुद्दों की सूची में एक नया बग रिपोर्ट करता है, और मैं इसके लिए एक असफल परीक्षण सूट लिखना चाहता हूं - ताकि यह निर्दिष्ट करने के लिए कि क्या किया जाना चाहिए और कहां, जिससे नए योगदानकर्ताओं के लिए इसे चुनना आसान हो जाता है। और अंततः एक तय पीआर।

मुझे इन असफल परीक्षणों को कहां धकेलना चाहिए? या फिर कहीं भी फेल होने वाले परीक्षणों को आगे बढ़ाना भी एक अच्छा विचार है?


@PhilipKendall अच्छी बात! हम अभी भी अपनी प्रक्रिया को ठीक कर रहे हैं; मुझे यह पसंद नहीं है कि वीएस ने "अनदेखा" परीक्षणों को "अनिर्णायक" परीक्षणों के साथ कैसे मिलाया - यदि निम्न-स्तरीय परीक्षणों में से एक विफल हो जाता है, तो हम नहीं चाहते कि आधे परीक्षण विफल हों, इसलिए जब हम पूर्वापेक्षाएँ पूरी नहीं करते हैं तो हम उन्हें अनिर्णायक बनाते हैं। ; यह सही कारणों के लिए परीक्षणों की विफलता की रिपोर्ट करता है, और "अनिर्णायक" जब वे परीक्षण नहीं कर सकते कि उनके लिए क्या लिखा गया था। हमारे पास बहुत से (अब) नहीं हैं, इसलिए उन्हें अनदेखा करना एक विकल्प हो सकता है ... लेकिन फिर, अगर इसे नजरअंदाज कर दिया गया तो क्या यह एक असफल परीक्षा है ?
मथिउ गुइंडन

समीक्षा प्रक्रिया का हिस्सा आपको कोई कोड लिखने में क्यों शामिल करता है? यदि आप बग देखते हैं तो आप पीआर में टिप्पणी करते हैं और वैकल्पिक रूप से पीआर को अस्वीकार करते हैं।
जेम्स

@ अच्छी तरह से, मुझे कोड लिखना पसंद है .. इसके अलावा और अधिक योगदानकर्ता शामिल हो रहे हैं, मैं वास्तविक कोडिंग की तुलना में अधिक से अधिक GitHub रखरखाव और PR (जनसंपर्क) काम कर रहा हूँ!
मैथ्यू गुइंडन

जवाबों:


11

इस स्थिति में मैं क्या करूंगा कि असफल परीक्षणों को "अनदेखा" कर दिया जाए - इस तरह से आपके पास अभी भी परीक्षण है ताकि आप जान सकें कि आपको भविष्य में क्या ठीक करने की आवश्यकता है, लेकिन आप टूटे हुए बिल्ड के साथ समाप्त नहीं होने जा रहे हैं ।

यदि आप समस्या को ठीक करने के लिए इश्यू ट्रैकर संदर्भ के साथ प्रत्येक परीक्षण को भी टैग करते हैं, जो आपको चीजों को एक साथ बाँधने का एक आसान तरीका देता है।


4

पूर्ण प्रकटीकरण: मैं चर्चा में भाग लेने वालों में से एक हूं।

रिपॉजिटरी की मास्टर ब्रांच यह मास्टर ब्रांच नहीं है। मास्टर में विलय किसी भी "वास्तविक उद्देश्य" की सेवा नहीं करता है और यह शाखा उन चीजों को नहीं कर रही है जो एक शाखा को करना चाहिए (अर्थात् चाल )।
आप नवीनतम रिलीज के लिए टैग के रूप में इस शाखा का दुरुपयोग कर रहे हैं।

एक शाखा का उपयोग करने के बजाय, एक टैग का उपयोग करें। जब आप जारी करना चाहते हैं, तो आप एक विषय शाखा की तरह, "रिलीज़-ब्रांच" में आवश्यक कदम उठाते हैं। फिर आप उस [अगले] में विलीन हो जाते हैं और उस पर एक टैग लगा देते हैं।

जो भूमिका [अगली] पूरी होती है, वह एक मास्टर शाखा की है। केवल रिलीज़-रेडी कोड वहां जाता है। कुछ और भी एक [विकसित] शाखा होगी। एक विकास शाखा में कार्य होता है जिसे स्थिर करना होता है । इसका अर्थ है: [मास्टर] को हटा दें, [अगला] जिस तरह से आपने किया था, उसका पुनरुत्थान करें और "कम स्थिर" कार्य के लिए एक और शाखा बनाएं

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


1
[मास्टर] में नवीनतम रिलीज़ होने के बाद एक हॉटफ़िक्स जारी करने के लिए अंतिम रिलीज़ को शाखा देना आसान बनाता है; उसके बाद हॉटफ़िक्स PR [अगले] में हो सकता है और वहाँ से हर देव शाखा में .. या मुझे कुछ याद आ रहा है?
मैथ्यू गुइंडन

2
आप बस git checkout -b HotFix ReleaseTag(अगर मुझे चेकआउट सिंटैक्स सही ढंग से बनाने वाली शाखा याद है)। यह रिलीजटेग से एक हॉटफिक्स शाखा बनाना चाहिए
वोगेल 612
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.