2015-03-03 5 views
27

क्या कंसोल आउटपुट में परीक्षण लॉगिंग चालू करने का कोई तरीका है?एंड्रॉइड यूनिट परीक्षणों में कंसोल आउटपुट कैसे चालू करें?

मुझे पता है कि हम एक HTML फ़ाइल में उत्पन्न परीक्षण परिणामों को देख सकते हैं और वहां मानक आउटपुट की जांच कर सकते हैं, लेकिन मुझे यह थोड़ा सा असुविधाजनक लगता है।

मैं जानता हूँ कि मानक जावा प्लगइन के साथ यह करने के लिए एक तरह से है कि वहाँ:,

Could not find method test() 

लागू करने जावा प्लगइन अस्वीकार्य है:

test { 
    testLogging { 
     events "passed", "skipped", "failed", "standardOut", "standardError" 
    } 
} 

लेकिन एक Android परियोजना में इसका उपयोग करने में कोई त्रुटि का कारण बनता है बेशक, क्योंकि यह एंड्रॉइड प्लगइन्स के साथ संगत नहीं है।

+0

कौन सा कंसोल आप क्या मतलब है? सभी लॉग डिवाइस से आए हैं। 'लॉगकैट' उपकरण सभी लॉग लाता है। – eleven

+0

क्षमा करें, शायद मैंने खुद को स्पष्ट रूप से स्पष्ट नहीं किया। मेरा मतलब था कि जेवीएम पर किए गए एंड्रॉइड यूनिट परीक्षण, सरल टर्मिनल से ग्रेडल रैपर के माध्यम से शुरू किए गए (इसलिए लॉगकैट प्रश्न से बाहर है) – scana

उत्तर

29
android { 

... 

    testOptions { 
     unitTests.all { 
     // All the usual Gradle options. 
      testLogging { 
       events "passed", "skipped", "failed", "standardOut", "standardError" 
       outputs.upToDateWhen {false} 
       showStandardStreams = true 
      } 
     } 
    } 
} 

मेरे मामले में, मैं इस document पीछा किया और इसके बाद के संस्करण के रूप में testLogging विकल्प जोड़ा। इसे src/test फ़ोल्डर के तहत लिखे गए यूनिट परीक्षणों के लिए लॉग प्रिंट करना चाहिए, लेकिन src/androidTest एक नहीं। इस जवाब के पल में, मैं एंड्रॉइड स्टूडियो 2.0 पूर्वावलोकन और 2.8 ग्रेडल का उपयोग कर रहा था। आदेश ./gradlew test और ./gradlew test --continue में आईटर्म 2 में चलाया गया था।

+0

'src/androidTest' के अंतर्गत परीक्षण चलाने के लिए, मैं पैकेज पर राइट क्लिक करता हूं और एंड्रॉइड स्टूडियो का उपयोग करके' com.example ... 'में' रन 'टेस्ट चुनें। – ninjahoahong

+0

धन्यवाद! यह अपेक्षा के अनुसार काम करता है! – scana

+0

@ स्काना नाइस, इससे मदद मिली। – ninjahoahong

1

यह

android { 

... 

    testOptions.unitTests.all { 
    testLogging { 
     events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' 
    } 
    } 
} 

स्रोत करना चाहिए: https://groups.google.com/forum/#!topic/adt-dev/LwZiKTnj8Bc

+1

हां, मेरे लिए काम न करें। ग्रैडल 2.6। –

+2

यह वास्तव में मेरे लिए काम किया। बहुत बहुत धन्यवाद! –

1

@ निंजाहोहोंग की तुलना में और भी सुंदर समाधान (Tricky Android blog पर धन्यवाद)।

बस allprojects 'शरीर के लिए अपनी परियोजना स्तर build.gradle के बगल में कोड जोड़ें:

allprojects { 
    // ... 
    tasks.matching {it instanceof Test}.all { 
     testLogging.events = ["failed", "passed", "skipped"] 
    } 
} 
+0

मेरे लिए काम नहीं करता है। –

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