2011-12-16 9 views
7

मेरे पास शुद्ध जावा यूनिट परीक्षण प्रोजेक्ट पीसी पर चल रहा है, और इसकी कार्यात्मक/एकीकरण परीक्षण परियोजनाएं एमुलेटर पर चल रही एक एंड्रॉइड प्रोजेक्ट सेटअप है। वे दो InstrumentationTestCase2 परीक्षण मामलों और रोबोटियम ढांचे का उपयोग करते हैं। मैं उन दो ग्रहणों को ग्रहण से चलाने में सक्षम हूं, के खिलाफ मेरे ऐप के संस्करण और परिणाम एकत्रित करें।रिलीज संस्करण एपीके के खिलाफ एंड्रॉइड/रोबोटियम इंस्ट्रुमेंटेशन टेस्ट केस कैसे चलाएं?

मैं एक्लिप्स निर्यात और चींटी निर्माण के माध्यम से एक रिलीज एपीके बनाने में सक्षम हूं। एपीके पर हस्ताक्षर किए गए हैं, zipaligned और obfuscated।

मैं जानना चाहता हूं कि के खिलाफ उन कार्यात्मक/एकीकरण परीक्षण को कैसे चलाया जाए, डीबग के बजाय, मेरे ऐप के संस्करण को रिलीज़ करें। मुझे पता है कि मैं कुछ त्रुटियों में शामिल हो सकता हूं क्योंकि ऐप प्रोजेक्ट में कुछ परीक्षण-केवल कक्षाएं होती हैं जो शायद प्रोगुर्ड द्वारा छीन ली गई हैं, लेकिन मैं इसे संभाल सकता हूं।

मैंने Google पर और यहां SO पर खोज की, लेकिन बिना किसी किस्मत के। रोबोटियम के साथ परीक्षण से संबंधित केवल एक पृष्ठ here है जब आपके पास केवल ऐप का एपीके है, कोई स्रोत नहीं है। मुझे यकीन नहीं है कि यह वास्तव में मेरी मदद करेगा। रिलीज एपीके के खिलाफ डिवाइस पर चलाने के लिए टेस्ट प्रोजेक्ट कैसे प्राप्त होगा?

उत्तर

2
  1. साइन दोनों परीक्षण के अंतर्गत रिलीज एप्लिकेशन और अपने रिलीज कुंजी
  2. स्थापित के साथ परीक्षण Robotium एप्लिकेशन दोनों से एप्लिकेशन आपका डिवाइस
  3. निम्न आदेश का उपयोग करके परीक्षण चलाएं:

adb shell am instrument -w com.your.package/android.test.InstrumentationTestRunner

जहां com.your.package आपका पैकेज नाम है।

अधिक जानकारी के लिए Robotium क्यू & एक देखें: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

आप उल्लेख किया है, आप भी कैसे आप अपने परीक्षण मामलों लिखा है पर निर्भर करता है कुछ Proguard मुद्दों हो सकता है।

+0

फिलहाल मैं उस परियोजना पर काम नहीं कर रहा हूं, लेकिन जवाब अभी भी जानना उपयोगी है। इसके अलावा, @ फ्रैंक ने इस पर एक इनाम दिया है। क्या आप आगे बढ़ने के बारे में विस्तार से बता सकते हैं? मेरा मतलब है: ठीक है, कहें कि आप डीबग एपीके और रिलीज एपीके को उसी (रिलीज़) कुंजी के साथ साइन करते हैं। फिर आप आगे कैसे जाते हैं? धन्यवाद! – superjos

+1

हस्ताक्षर करने के बाद, आपको परीक्षण और टेस्ट रोबोटियम ऐप के तहत रिलीज ऐप दोनों इंस्टॉल करना होगा, फिर कमांड लाइन से परीक्षण शुरू करें, "adb shell am instrument -w com.android.foo/android.test" कमांड के माध्यम से। .SstrumentationTestRunner ", जहां com.android.foo आपका पैकेज नाम है। अधिक जानकारी के लिए रोबोटियम क्यू एंड ए देखें: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers – theelfismike

+0

ठीक है। फिलहाल मैं यह जांचने में सक्षम नहीं हूं कि यह काम करता है या नहीं। अगर @ फ्रैंक इसकी पुष्टि कर सकता है, तो मैं * * * उत्तर के रूप में चिह्नित करने के लिए खुश हूं (मुझे लगता है कि फ्रैंक ऐसा नहीं कर सकता)। – superjos

1

आपको अपने लक्षित ऐप और परीक्षण ऐप की प्रोजेक्ट रूट में ant.properties डालने की आवश्यकता है। ant.properties की सामग्री इस तरह करना चाहिए: key.alias= key.store.password= key.store= key.alias.password=

+1

हैलो। उत्तर के लिए धन्यवाद। मुझे लगता है कि रिलीज एपीके बनाने के लिए इसकी आवश्यकता है (इसे साइन करें, और इसी तरह)। वह ऑपरेशन पहले से ही हो रहा है। रिलीज संस्करण एपीके के खिलाफ कार्यात्मक/एकीकरण परीक्षण चलाने के बाद मैं क्या था। – superjos

2

मैं जानना चाहता हूं कि के खिलाफ उन कार्यात्मक/एकीकरण परीक्षण को मेरे ऐप के रिलीज़ संस्करण को डीबग करने के बजाय कैसे चलाया जाए।

मैं जबकि एक समाधान के लिए खोज ..

के बाद से इस वर्ष जवाब के साथ एक पुराने सवाल यह है कि इस सवाल का भर आया, मैं Gradle आधारित एंड्रॉयड परियोजना के लिए एक अद्यतन जवाब देना होगा।

मैं क्या है:

  1. देना रिहाई का निर्माण प्रकार के खिलाफ परीक्षण apk रन इस जोड़कर:
android { 
    testBuildType "release" 
} 
  1. ऐड आपके परीक्षण एपीके के साथ प्रोगार्ड नियम
buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles 'proguard-rules.txt' 
     testProguardFile('proguard-rules.txt') 
    } 
} 

अब रिलीज निर्माण के खिलाफ परीक्षण चलाने का प्रयास करें। प्रोजेवार्ड के कारण आपको अभी भी त्रुटि हो सकती है। यदि आप Robotium उपयोग कर रहे हैं, जैसे मैं करता हूँ, तो आपको निम्न पंक्ति अपने ProGuard-rules.txt फ़ाइल में जोड़ सकते हैं:

##--------------- Begin: proguard configuration for Robotium ---------- 
-keep class com.robotium.** { *;} 
##--------------- End: proguard configuration for Robotium ---------- 

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

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