2011-01-16 13 views

उत्तर

9

परीक्षण एप्लिकेशन "उपकरण" लक्ष्य या मुख्य अनुप्रयोग।

परीक्षण प्रोजेक्ट के AndroidManifest.xml में उपकरण अनुभाग परीक्षण के समान प्रक्रिया में चलाने की अनुमति देता है। यह इंस्ट्रूमेंटेशन फीचर परीक्षण अनुप्रयोग को एंड्रॉइड घटक लाइफसाइकिलों के माध्यम से एक नियंत्रित तरीके से कदम उठाने की अनुमति देती है।

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

http://developer.android.com/guide/topics/testing/testing_android.html#Instrumentation

सारांश में

तो देखते हैं, अतिरिक्त आवेदन परीक्षण लक्ष्य से अधिक विशेष शक्तियां है। चूंकि ये परीक्षण अनुप्रयोग में समाहित हैं, इसलिए आपके असली एप्लिकेशन को केवल अपनी कर्तव्यों को पूरा करने के लिए आवश्यक अनुमतियों की आवश्यकता होती है।

+0

यह सुनिश्चित नहीं है कि परीक्षण में उपयोग किए गए मेरे अनुभव अनुमतियों से परीक्षण लक्ष्य मैनिफेस्ट में घोषित किया जाना चाहिए (यदि आप मुझसे पूछें तो बहुत खराब है) – zode64

+0

यह सच है कि कुछ परीक्षण पुस्तकालयों के लिए आवश्यक है कि लक्ष्य में अतिरिक्त अनुमतियां हों। उदाहरण के लिए, मुझे लगता है कि रोबोटियम को यह देखने की अनुमति की आवश्यकता होती है कि कौन सी प्रक्रियाएं चल रही हैं। मैं रोबोटियम का उपयोग करता हूं और सहमत हूं कि यह आदर्श नहीं था। हालांकि रोबोटियम अब इसकी आवश्यकता नहीं दिखता है। मुझे लगता है कि चूंकि परीक्षण ऐप लक्ष्य एप्लिकेशन प्रक्रिया के हिस्से के रूप में चलता है, इसलिए यह लक्ष्य की अनुमतियों का उपयोग करता है। क्या आप अपने अनुभव के बारे में अधिक विशिष्ट हो सकते हैं? मेरा जवाब सवाल है "परीक्षण को एक अलग परियोजना में ले जाने का फैसला क्यों किया गया है"। – byeo

+0

एक साधारण उदाहरण, मेरे पास ऐप ए और टेस्ट प्रोजेक्ट बी है जो ऐप ए का परीक्षण करता है।यदि मैं परिणाम की पुष्टि करने के लिए टेस्ट प्रोजेक्ट बी में इंटरनेट का उपयोग करना चाहता हूं (मुझे पता है, यह एक खराब परीक्षण है) लेकिन ऐप ए में इंटरनेट अनुमति नहीं है, मुझे ऐप ए में जोड़ना होगा, इसलिए एक उत्पादन ऐप अनावश्यक अनुमति देना गलत है। टेस्ट प्रोजेक्ट के रूप में देखा गया है कि यह स्वयं का खुलासा है, वहां परीक्षण विशिष्ट अनुमतियों को परिभाषित करने में सक्षम होना बेहतर होगा, हालांकि मैं निम्न स्तर पर समझता हूं, यह बहुत कठिन होगा – zode64

0

मुझे लगता है कि इस तरह आप दो अलग-अलग ऐप्स कर सकते हैं, एक नियमित है, और एक इसका परीक्षण करने के लिए। यदि आप अपना ऐप प्रकाशित करना चाहते हैं, तो आपको अपने परीक्षणों को हर किसी को देने की आवश्यकता नहीं है। लेकिन शायद यह बेहतर उद्देश्यों के लिए किया जा सकता है!

+0

हाँ यह इतना है कि परीक्षण कोड आवेदन ही में तब्दील नहीं किया है किया जाता है प्रकट का समर्थन करेंगे, इजाजत दी परीक्षण कोड को ऐप के अंतिम उत्पादन संस्करण के खिलाफ चलाने के लिए ऐप आकार को बढ़ाने के बिना इसे बनाए गए सभी टेस्ट कोड के साथ चलाने के लिए चलाया जाना चाहिए। – hackbod

+0

ओह नोट करें कि आप * अपने परीक्षणों को सीधे अपने ऐप में बना सकते हैं, इसमें कुछ भी नहीं है। ऐसा करने का कोई अच्छा कारण नहीं है, क्योंकि टेस्ट कोड ऐप कोड से लिंक है, इसलिए इसकी पूर्ण पहुंच है। – hackbod

+1

लेकिन यह एंड्रॉइड देव साइट पर कहा गया है कि "सबसे अच्छा तरीका परीक्षण प्रोजेक्ट को जोड़ना है ताकि इसकी मूल निर्देशिका परीक्षण/मुख्य अनुप्रयोग की परियोजना के स्रोत/निर्देशिका के समान स्तर पर हो।" मतलब परीक्षण में आवेदन बनाया गया है। – Eugene

1

वर्तमान प्रलेखन, मैं यह व्याख्या के रूप में, कहा गया है कि आप applicaton परियोजना के अंदर फ़ोल्डर "परीक्षण" में एक अलग परियोजना में परीक्षण कोड धारण करना चाहिए =>
http://developer.android.com/guide/topics/testing/testing_android.html#TestProjects

"एक परियोजना के भीतर एक परियोजना" कैसे ?
Creating an Android Test project in Eclipse

क्यों?
पूर्व के बजाय। 40 परियोजनाओं में आपके पास 20 परियोजनाएं हैं => बेहतर अवलोकन, कम रखरखाव, तेज ग्रहण।
दो build.xml => आसान सीआई जेनकींस के साथ बनाता है
दो प्रकट फ़ाइलों => एडीटी के भविष्य के संस्करणों उपकरण निर्माण विलय

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