2012-02-20 17 views
46

के माध्यम से परीक्षण करते समय लॉगिंग, परीक्षण करते समय, ग्रैडल stdout/stderr को project_dir/build/reports/tests/index.html पर रीडायरेक्ट करने के लिए प्रतीत होता है। क्या इस पुनर्निर्देशन से बचने के लिए कोई तरीका है, और इसके बजाय कंसोल पर मुद्रित चीजें प्राप्त करें?ग्रैडल

अतिरिक्त जानकारी:

  • यह एक स्काला 2.9.1 परियोजना है।
  • मैं लॉगिंग के लिए slf4s का उपयोग कर रहा हूं।

उत्तर

63
apply plugin : 'java' 

test { 
    testLogging.showStandardStreams = true 
} 

http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html

यह एक वर्तमान Gradle संस्करण की आवश्यकता है। मुझे लगता है कि स्कैला परीक्षण जावा परीक्षण कार्य के तहत चलाए जाते हैं।

+6

बस इसका परीक्षण किया। काम नहीं करता परीक्षण ऐसा लगता है कि यह नहीं है पर – missingfaktor

+0

ओह, यह मेरे लिए उत्पादन का उत्पादन हालांकि: http://pastebin.com/PX8e1EKv संपादित करें: एक प्रिंट के लिए println में संशोधन के रूप में मुझे लगता है कि घटना को दर्शाता न्यू लाइन – roby

+0

धन्यवाद । मैं भी कोशिश करूंगा। मेरे पास स्रोत फ़ाइलों में कुछ लॉग स्टेटमेंट भी हैं। मैं उन्हें कंसोल पर कैसे प्रिंट करूं? – missingfaktor

10

मैं भी उपयोग कर रहा हूँ (testLogging.exceptionFormat = 'full'):

test { 
    testLogging.showStandardStreams = true 
    testLogging.exceptionFormat = 'full' 
} 

कौन सा अच्छा है स्टैकट्रेस से अधिक देखने के लिए

+0

'अपवादफॉर्मैट' सेटिंग मेरे लिए काम करती है, 'शोस्टर्डस्ट्रीम' का कोई प्रभाव नहीं पड़ा! – Shakeel

9

रूप @roby उत्तर दिया:

अपने build.gradle

के लिए निम्न कोड जोड़ने
apply plugin : 'java' 

test { 
    testLogging.showStandardStreams = true 
} 

महत्वपूर्ण!

आपको ग्रेडिंग परीक्षण चलाने या clean कमांड के साथ निर्माण करने की आवश्यकता है।

./gradlew clean test 

or 

./gradlew clean build 

आशा है कि काम करता है।

+1

क्या आप समझा सकते हैं कि क्यों "साफ" की आवश्यकता होगी? –

+1

@MichaelKanis क्योंकि आप को धीरे-धीरे कॉन्फ़िगरेशन बदल दिया गया है .. जहां तक ​​मुझे पता है, ग्रेडल कॉन्फ़िगरेशन कैश किया गया है। – nmfzone

+0

@nmfzone जिसका मतलब है कि आपको कैश को अपडेट करने के लिए एक बार साफ परीक्षण चलाने की आवश्यकता है। लेकिन मेरे परिदृश्य में, मुझे कंसोल पर परीक्षण परिणाम दिखाने के लिए हर बार क्लीन कमांड चलाने की ज़रूरत है। भले ही निम्नलिखित रनों पर विन्यास कॉन्फ़िगरेशन में कोई बदलाव नहीं किया गया हो। –

7

यह मैं काम करता है:

test { 
    testLogging { 
     showStandardStreams = true 
    } 
} 
5

एंड्रॉयड Gradle फ़ाइलें के लिए

आप एक Android Gradle फाइल के अंदर कर रहे हैं तो

(यदि apply plugin: 'com.android.application' अपने build.gradle फ़ाइल के शीर्ष पर है) इसे बनाने में पेस्ट करें।Gradle

// Test Logging 
tasks.withType(Test) { 
    testLogging { 
     events "standardOut", "started", "passed", "skipped", "failed" 
    } 
} 
0

बस को जोड़ने के लिए, जब निम्नलिखित के रूप में दोनों प्रविष्टियाँ मिश्रण

events = ["standard_out", "standard_error"] 

यह महत्वपूर्ण है इसे ध्यान में रखने के लिए:

showStandardStreams = true 

एक shorthand के लिए है

test { 
    testLogging { 
     showStandardStreams = true 
     events = ["passed", "failed", "skipped"] 
    } 
} 

wil कोई stdout उलटे क्रम जबकि में एल परिणाम:

test { 
    testLogging { 
     events = ["passed", "failed", "skipped"] 
     showStandardStreams = true 
    } 
} 

सूची stdout प्रविष्टियों जोड़ देगा, इसलिए stdout काम करेंगे।

विवरण के लिए the source देखें।

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