2011-12-23 50 views
6

मैं का उपयोग एक वेब appilcation पर कुछ एकीकरण परीक्षण चलाने के लिए जेनकींस (का उपयोग कर ककड़ी, capybara और सेलेनियम)जेनकींस बिल्ड में विफल रहता है जब कलाकृतियों नहीं हैं

हर एक परीक्षण विफल रहता है, एक स्क्रीनशॉट, HTML स्रोत और का एक वीडियो प्रक्रिया बचाई गई है।

पथ संरचना इस तरह दिखता है:

results/output/<test_name>/<files> 

मैं संग्रह कलाकृतियों जेनकींस की सुविधा फ़ाइलें (: results/output/*/* पैटर्न) प्रदान करने के लिए इस्तेमाल करते हैं। यह बहुत अच्छा काम करता है।

हालांकि जैसे ही कोई निर्माण सफल होता है, वहां कोई स्क्रीनशॉट/वीडियो आदि नहीं होते हैं ... और बिल्ड विफल रहता है क्योंकि जेनकिंस पैटर्न के लिए फ़ाइलों को नहीं ढूंढ सकता है।

क्या जेनकिन्स को फाइलें मौजूद होने के बिना सफल होने का कोई तरीका है?

मैं एक गंदे हैक नहीं करना चाहता जिसमें परिणाम/आउटपुट/सफलता/hooray.txt जैसे खाली फ़ोल्डर संरचना शामिल है।

+0

अच्छा सवाल पर समझाया; मैं एक ही चीज़ के बारे में सोच रहा था! – Jonik

उत्तर

4

मैं अपनी कुछ परियोजनाओं पर एक समान मुद्दे में भाग गया। दो अलग-अलग तरीके हैं जिन्हें हमने हल किया है (दो अलग-अलग निर्माण पर)।

1) बिल्ड चरणों में एक कमांड जोड़ा गया है जो कोई भी फाइल पहले से मौजूद नहीं है, तो एक फर्जी अस्थायी फ़ाइल बनाता है।

इस मामले में, यह आउटपुट.pdf फ़ाइल एकत्र करने के लिए था जो परीक्षण विफल होने पर उत्पन्न किया जाएगा। मैंने एक बिल्ड चरण जोड़ा जहां वह फ़ाइल मौजूद नहीं थी, हमने एक "missing.pdf" फ़ाइल बनाई। फिर मैं जो वस्तुएं कलाकृतियों के रूप में एकत्र करता हूं वह दी गई निर्देशिका से '* .pdf' है। ऐसा लगता है कि यह बहुत अच्छा काम करता है।

2) एक और निर्माण पर हमें एक ग्लोब का उपयोग करके फ़ाइलों का एक सेट एकत्र करने की आवश्यकता थी।

हमने यहां क्या किया था, इसलिए निर्माण चरण हमेशा गंतव्य क्षेत्र में एक खाली फ़ाइल बनाता है। इस तरह ग्लोब हमेशा कुछ मेल खाता है।

वे सबसे अच्छे समाधान हैं जिन्हें हमने अभी तक पाया है। अगर आपको कुछ बेहतर लगता है तो मुझे इसके बारे में सुनना अच्छा लगेगा।

+0

मैंने एक चरण जोड़ा जो सफलता.txt बनाया जब फ़ोल्डर – leifg

13

वहाँ उस के लिए पर एक खुला मुद्दा है: https://issues.jenkins-ci.org/browse/JENKINS-10502

व्यवहार, प्रणाली संपत्ति hudson.tasks.ArtifactArchiver.warnOnEmpty द्वारा नियंत्रित किया जाता के रूप में https://wiki.jenkins-ci.org/display/JENKINS/Features+controlled+by+system+properties

+1

+1 बनाने के बाद खाली था, मुझे लगता है कि यह सही उत्तर है। (यदि कोई और सोच रहा है कि यह जेनकिंस के साथ डेबियन/उबंटू पर चल रहा है, तो '/ etc/default/jenkins' संपादित करें और '-Ahudson.tasks.ArtifactArchiver.warnOnEmpty = true' ** JAVA_ARGS ** (या संभवतः JENKINS_JAVA_OPTIONS)। JENKINS_ARGS कम से कम यदि आपके पास एक से अधिक संपत्ति हो, तो काम नहीं करेगा! – Jonik

+2

फिर भी, जैसा कि किसी व्यक्ति ने आपके द्वारा लिंक किए गए मुद्दे में टिप्पणी की है, शर्म की बात है कि इसे जेनकींस यूआई में चेकबॉक्स के साथ कॉन्फ़िगर नहीं किया जा सकता है प्रति नौकरी के आधार पर। – Jonik