मेरे पास रूबी ऐप पर रूबी ऐप्स में कई नियंत्रक हैं जो कार्रवाई के अंत में एक बचाव हैंडलर के साथ हैं जो मूल रूप से किसी भी अनचाहे त्रुटियों को पकड़ता है और किसी प्रकार की "उपयोगकर्ता अनुकूल" त्रुटि देता है। हालांकि, जब मैं रेक परीक्षण कर रहा हूं, तो मैं उन डिफ़ॉल्ट बचाव हैंडलर को अक्षम करना चाहता हूं ताकि मैं पूर्ण त्रुटि & स्टैक ट्रेस देख सकूं। क्या ऐसा करने का कोई स्वचालित तरीका है?जब मैं कार्यात्मक परीक्षण चला रहा हूं तो मैं रेल ऐप पर रूबी में बचाव हैंडलर को कैसे अक्षम करूं?
अद्यतन स्पष्ट करने के लिए: मैं इस तरह एक कार्रवाई है: अब
def foo
# do some stuff...
rescue
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
जब मैं कार्यात्मक परीक्षण इस, अगर अपवाद तब उठाया है मैं के बारे में जानकारी का सिर्फ एक छोटा सा पाने के लिए जा रहा हूँ अपवाद, लेकिन मुझे यह पसंद करना है कि वहां कोई बचाव करने वाला यंत्र नहीं है, इसलिए मुझे पूर्ण डीबग जानकारी मिलती है।
अद्यतन: समाधान
मैंने किया था यह:
rescue:
raise unless Rails.env.production?
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
अच्छा मैं कोशिश करूँगा! –
उठाएं यदि Rails.env.test? क्लीनर आईएमओ – Scott
@ स्टेवन है यह वास्तव में केवल उत्पादन में ही बचाव नहीं करता है। यह कहां उठाता है .. लेकिन यदि आपके पास #do सामान में कोड की 20 लाइनें हैं तो raise इस पर कोई संदर्भ नहीं देता है। ट्रेस उस पंक्ति पर हुई त्रुटि को इंगित करता है जो raise चालू है। – baash05