2016-02-16 8 views
6

पर छोड़ दिया करने के लिए कैसे काम करता है TeamCity चारों ओर मेरी टिप्पणियों से की जरूरत है, मुझे लगता है कि निर्माण की विफलता की स्थिति के बाद सभी चरणों को क्रियान्वित किया जाता है मूल्यांकन किया जाता है देखा। यह काफी परेशान है क्योंकि मेरे पास ऐसा कोई कदम नहीं हो सकता है जो किसी भी विफलता की स्थिति पूरी होने पर निष्पादित नहीं होगा।TeamCity कदम निर्माण विफलता की स्थिति

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

जब मैं निर्माण लॉग जाँच, मैं स्पष्ट रूप से देख सकते हैं कि सभी कदम क्रियान्वित कर रहे हैं, और केवल अंत में यह निर्माण विफलता की स्थिति का मूल्यांकन करता है, और किसी भी अगर संबंधित त्रुटियों लॉग करता है। लेकिन यह प्रक्रिया में बहुत देर हो चुकी है क्योंकि सशर्त कदम (जिसे केवल "निष्पादन की स्थिति सफल होने पर निष्पादित करें" पर आधारित असफल होना पड़ता है) पहले ही निष्पादित हो चुका है।

प्रश्न: मैं इसे कैसे प्राप्त कर सकता हूं?

आप ऊपर से देख सकते हैं, मैं पहले से ही एक सशर्त कदम करने की कोशिश की और निर्माण विफलता की स्थिति जोड़ा है, लेकिन वांछित परिणाम प्राप्त नहीं कर सकते। स्पष्टता के लिए

अलावा:

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

उत्तर

0

यह क्योंकि निर्माण विफलता की स्थिति जाँच कर रहे हैं जब सभी निर्माण चरणों पूरा कर रहे हैं है। और यह समझ में आता है, क्योंकि मीट्रिक परिवर्तन जैसी स्थिति के लिए आपको निर्माण को पूरा करने के लिए इंतजार करना चाहिए, मेरा मतलब है कि आप कलाकृतियों के आकार की गणना करने या लॉग में एक विशिष्ट पाठ की तलाश करने या निर्माण पूरा होने तक कुछ विशिष्ट की तलाश नहीं कर सकते हैं।

यह कहा गया - आपके मामले के लिए, आपको विफलताओं पर एक गैर शून्य निकास कोड के साथ बाहर निकलने के चरणों को लिखने पर विचार करना चाहिए और फिरमें Execute step में If all previous steps finished successfully विकल्प का उपयोग कर सकते हैं।

+0

तो, आप सुझाव दे रहे हैं कि यूनिट-परीक्षण के साथ कदम मामले में गैर शून्य कोड के साथ बाहर निकलने चाहिए निर्माण विफलता शर्तों को पूरा कर रहे हैं? लेकिन निर्माण विफलता स्थितियों के आधार पर मैं शून्य-शून्य कोड वापस करने के लिए चरण कैसे बता सकता हूं? – Tengiz

+0

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

+0

विफल रहता है तो यह एक गैर-शून्य निकास कोड से बाहर निकलता है। मुझे आपका पॉइंट मिला। लेकिन यूनिट-टेस्ट विफल नहीं हो रहे हैं, केवल विफलता की स्थिति बनाना ही सत्य है। इसका मतलब है: सभी यूनिट-परीक्षण पास हुए, लेकिन कवरेज एन प्रतिशत द्वारा गिरा दिया गया। मेरे पास बिल्ड विफलता की स्थिति है जो जांचता है कि कवरेज गिरा है या नहीं, और यदि इसे गिरा दिया गया तो बिल्ड को असफल के रूप में चिह्नित किया जाएगा। हालांकि यूनिट-परीक्षण विफल नहीं होते हैं। निर्माण के अंत में, इसे असफल के रूप में चिह्नित किया गया है, इसलिए बिल्ड विफलता की स्थिति ठीक काम करती है। कवरेज गिराए जाने पर मुझे केवल अंतिम चरण (तैनाती) छोड़ने की आवश्यकता है (इसका मतलब है कि बिल्ड विफलता की स्थिति पूरी हो गई है)। – Tengiz

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