2011-08-30 7 views
33

स्टैकट्रैक को छोटा कर दिया गया है - उदा। वे [info] ...एसबीटी और testng का उपयोग करते समय परीक्षण में फेंक दिया अपवादों के लिए मैं पूरी तरह से stacktraces कैसे प्राप्त कर सकते हैं?

last का उपयोग करके या traceLevel बदलना मदद नहीं करता है - यह बस एसबीटी रैपर के पूर्ण स्टैकट्रैस को प्रिंट करता है।

यह TestNG के साथ परीक्षण कर रहा है

उत्तर

3

(भी मैं scalatest और sl4j का उपयोग कर विश्वास) एसबीटी पूर्ण स्टैक ट्रेस मुद्रित करने के लिए हो रही है के लिए एक विकल्प के रूप में, आप एक try डाल सकता है - अपने परीक्षण धावक के आसपास catch ब्लॉक? उदाहरण के लिए, आरईपीएल से:

scala> try { throw new Exception } catch { case e => e } 
res1: java.lang.Throwable = java.lang.Exception 

scala> res1.printStackTrace 
java.lang.Exception 
    at $line2.$read$$iw$$iw$.liftedTree1$1(<console>:8) 
    at $line2.$read$$iw$$iw$.<init>(<console>:8) 
    at $line2.$read$$iw$$iw$.<clinit>(<console>) 
    ... 
37

संकेत का उपयोग करना documentation here में पाया:

(उद्धृत)

आप उत्पादन दिखाया जाता है जब चार तरह से एसबीटी के साथ चल रहा कॉन्फ़िगर कर सकते हैं: 1) रंग बंद करें, 2) छोटे ढेर निशान दिखाएं, 3) पूर्ण ढेर निशान, और 4) सब कुछ के लिए अवधि दिखाएं। ऐसा करने के लिए आप ScalaTest करने के लिए एक -ओ तर्क पास करनी होगी और -ओ के बाद, किसी भी संयोजन जगह:

  • डी - शो अवधि
  • एस - शो कम स्टैक ट्रेस
  • एफ - पूर्ण दिखाने स्टैक ट्रेस
  • डब्ल्यू - रंग

उदाहरण के लिए बिना, "-oDF" पूर्ण स्टैक ट्रेस और अवधि (समय की राशि प्रत्येक परीक्षा में खर्च) में दिखाई देगा।

, आप या तो परीक्षण के लिए विकल्पों को विश्व स्तर पर जोड़ सकते हैं ScalaTest को इस तरह एसबीटी से तर्क पारित करने के लिए:

testOptions in Test += Tests.Argument("-oD") 

आप उपयोग कर सकते हैं (उद्धरण के आराम के लिए वेबसाइट देखें) परीक्षणों में पूर्ण स्टैक निशान सक्षम करने के लिए निम्नलिखित sbt कमांड का पालन करें:

> set testOptions in YourProjectName += Tests.Argument("-oF") 
+3

निश्चित रूप से यह * सही * उत्तर है? –

+14

वैकल्पिक रूप से पूर्ण स्टैक निशान को कमांड लाइन परीक्षण निष्पादन के दौरान '- -oF' param के साथ सक्षम किया जा सकता है:' sbt test - -oF' – Sasha

+1

'-oF' ध्वज के साथ समस्या यह है कि यह पूर्ण स्टैक निशान भी दिखाता है एक गलत मैच के रूप में सरल कुछ। 2 के बराबर नहीं होने के लिए एक पूर्ण स्टैक ट्रेस होने की आवश्यकता नहीं है 3. किसी भी विचार को कैसे हल किया जा सकता है? – chbh

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

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