2016-04-26 11 views
15

जाहिर है एक उपकरण परीक्षण चालन जब अपवाद पर instrumented आवेदन में होता है बंद कर दिया जाता है:अपवाद के बाद एंड्रॉइड इंस्ट्रूमेंटेशन टेस्ट चलाने के लिए कैसे जारी रखें?

टेस्ट पूरा होने से चलाने में नाकाम रहे। कारण: 'अपवाद' के कारण इंस्ट्रुमेंटेशन रन विफल रहा। विवरण के लिए डिवाइस लॉगकैट देखें

क्या यह वांछित व्यवहार या एक कस्टम उपकरण धावक में गलत कॉन्फ़िगरेशन है?

स्वीकृति परीक्षण स्वचालित करने के लिए मैं कस्टम MonitorinInstrumentation [1] का उपयोग कर रहा हूं।

दुर्भाग्य से परीक्षण पर निष्पादन रद्द हो जाता है जब एक परीक्षण में अपवाद होता है। मैं परीक्षण सूट को पूरा करना चाहता हूं और केवल असीमित परीक्षणों को चिह्नित करता हूं, जैसे जुनीट में।

क्या एक परीक्षण में अपवाद होने पर पूरे उपकरण को छोड़ दिए बिना निष्पादित (कनेक्टेड) ​​परीक्षण करने का कोई सामान्य तरीका है?

  1. https://github.com/cucumber/cucumber-jvm/blob/master/examples/android/android-studio/Cukeulator/app/src/androidTest/java/cucumber/cukeulator/test/Instrumentation.java

उत्तर

2

इंस्ट्रुमेंटेशन परीक्षण एक अपवाद बढ़ा जब कुछ गलत हो (उदाहरण के लिए कुछ की स्थिति है कि आप जाँच करना चाहते हैं) चला जाता है। आप आमतौर पर प्रयास कैच स्टेटमेंट (या उन चेक को बदलने) का उपयोग करके विफल होने के लिए कुछ परीक्षण से बच सकते हैं। इस मामले में कुछ ऐसा है जो Dalvik वर्चुअल मशीन बंद कर दिया। यह आमतौर पर आपके ऐप में एक क्रैश के कारण होता है। कुछ क्रैश होने पर विश्लेषण करने के लिए सावधानीपूर्वक अपने परीक्षण प्रवाह की जांच करने का प्रयास करें। साथ ही, सिस्टम.एक्सिट (0)पर डीड्रॉय() पर अपनी कुछ गतिविधियों में उपयोग करना सुनिश्चित करें क्योंकि इससे आपकी समस्या हो सकती है। मुझे आपकी मदद करने की उम्मीद है।

+0

आपके उत्तर के लिए सभी बहुत धन्यवाद के पहले। दुर्भाग्यवश यह मेरी समस्या का समाधान प्रदान नहीं करता है। जैसा कि मैंने कहा है, परीक्षणों के तहत आवेदन अपवाद उठाता है जो पूर्ण उपकरण चलाने को रोकता है। परीक्षण में एक प्रयास पकड़ना लागू नहीं है। मैं एक समाधान की तलाश में हूं - यदि यह उपकरण के साथ संभव है - जहां उपकरण चलाना जारी रहता है और केवल परीक्षण, जो एप्लिकेशन को क्रैश करने का कारण बनता है, को "लाल" चिह्नित किया जाता है। – a11n

+0

मुझे पता है कि यह इस समस्या का समाधान नहीं है। जैसा कि मैंने कहा है कि कुछ स्टॉपपीग डाल्विक वर्चुअल मशीन है: मेरी राय में यह आपके कोड में कुछ त्रुटि से संबंधित हो सकता है और इसलिए मैं आपको अपना कोड देखने के लिए आमंत्रित करता हूं। कुछ क्रैश की तलाश करें और **Destroy() ** ** ** System.exit (0) ** पर कॉल न करें। –

+0

न तो System.exit() और न ही Destroy() को बुलाया जाता है। लेकिन वाल्विक वीएम, निश्चित रूप से, वाद्य यंत्र में अपवाद के कारण बंद हो जाता है। Http://developer.android.com/tools/testing/testing_android.html#Instrumentation पढ़ने के बाद मैं इस धारणा के तहत था कि उपकरण आवेदन प्रक्रिया शुरू करता है और किसी भी तरह से एप्लिकेशन से स्वतंत्र है।लेकिन आप कह रहे हैं कि अगर उपकरण "मर जाता है" तो उपकरण "मर जाता है"? क्या इसे रद्द करने का कोई मौका है? – a11n

0

आप अपने जड़ build.gradle

tasks.withType(Test) { 
    ignoreFailures = true 
} 

में डालने के लिए प्रलेखन के अनुसार कोशिश कर सकते हैं:

तो परीक्षण में से एक विफल रहता है, किसी भी डिवाइस पर, निर्माण असफल हो जायेगी।

चेक इस android testing

+1

मेरी समस्या एक असफल निर्माण नहीं है। इसलिए, दुर्भाग्य से आपका प्रस्ताव मदद नहीं करेगा। (मेरी समस्या यह है कि परीक्षण सूट पूरा होने के लिए नहीं चलता है अगर एक परीक्षण परीक्षण के तहत आवेदन के भीतर एक अपवाद की ओर जाता है।) – a11n

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