2014-05-05 6 views
6

पर सभी जानकारी कैसे प्राप्त करें, ठीक है, मैं जानना चाहता हूं कि जेनकींस में परीक्षण की जानकारी को वापस कैसे प्राप्त किया जाए।कैस्परजे + जेनकींस: जब कोई परीक्षण विफल हो जाता है, तो इस परीक्षण

यहाँ मेरी फ़ोल्डर (fr) का परिणाम (यह 22 मिनट प्रदर्शित करता है लेकिन समानांतर में यह 3min है।):

jenkinsResult

यहाँ परीक्षण का वर्णन -jenkins- विफल रहा:

jenkins-casperJs test failed-

यहाँ परीक्षण का वर्णन -casper- विफल रहा:

casperjs test failed

तो मेरी समस्या यह है कि जेनकींस केवल परीक्षण का संदेश असफल रहा है, और मैं लाइन और कोड के रूप में भी उपयोगी जानकारी प्राप्त करना चाहता हूं (वास्तव में कंसोल आउटपुट है लेकिन यह सुविधाजनक नहीं है-> मैंने बदल दिया है मेरी खान, यह है, xUnit with Jenkins: how to display colors in the Build Console Output? देखें, लेकिन मुझे अभी भी 'ढेर डी exécution'/निष्पादन ढेर में जानकारी चाहिए)।

उत्तर

8

मैं एक समाधान नहीं मिला, बस संदेश को बदल ...:

casper.test.on("fail", function(failure) { 
    failure.message = "Message : " + failure.message + "\nLine : "+ failure.line + "\nCode : " + failure.lineContents; 
}); 

त्रुटि को फिर से शुरू (test.begin के साथ) ढेर भी हालांकि संशोधित किया गया है। लेकिन मुझे जेनकींस में परवाह नहीं है, इसलिए हम if casper.cli.get('xunit') { casper.test.on('fail'){...} ;} जैसी स्थिति का उपयोग कर सकते हैं।

और इसलिए:

Solution बल्कि वास्तव में सरल है ... मैं बेहतर खोज होनी चाहिए।

Artjom के लिए:

वास्तव में त्रुटियों यह काफी वर्बोज़ इसलिए मुझे नहीं लगता कि ऐसा करने के लिए परिवर्तन होते हैं है के लिए, देखें: error Casper

लेकिन आप अभी भी यह उसी तरह अनुकूलित और कर सकते हैं यह ऐसा ही कुछ हो सकता है:

casper.test.on("fail", function(failure) { 
    //if error type undefined function 
    if(failure.message.message){//or failure.message.stack.TypeError 
     failure.message.message = "Message : " + failure.message.message + "\nLine : "+ failure.message.line;//in jenkins -> title 
    } 
    //else assert error 
    else{failure.message = "Message : " + failure.message + "\nLine : "+ failure.line + "\nCode : " + failure.lineContents;} 

    //console.log(JSON.stringify(failure,4,'\t')); //see parameters you can modify in the failure object 
}); 

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

अब मैं भी स्क्रीनशॉट पथ प्रदर्शित करने के लिए एक रास्ते पर काम कर रहा हूँ, ऐसा ही कुछ है करने के लिए:

Message : No notice on the page 
Line : 83 
Code : this.test.assertTextDoesntExists('Notice', 'No notice on the page'); 
Screenshot : http://-jenkins-/job/-myJob-//lastFailedBuild/artifact/screenshots/fail0.png/ 

ठीक है, मैं यह किया:https://github.com/n1k0/casperjs/pull/920

उद्देश्य है क्लिक करने के लिए सीधे जेनकींस और डिस्प्ले स्क्रीन में ब्राउजर का उपयोग करके लिंक पर :)

+1

क्या यह त्रुटियों के लिए भी काम करता है (यानी अपरिभाषित पर कॉल फ़ंक्शन)? क्या कोई ऑन ("त्रुटि", फ़ंक्शन ... '? –

+0

हां, अच्छा बिंदु, मैं इसे ध्यान में रखने के लिए इसे संपादित करता हूं। – Fanch

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