2013-06-03 2 views
8

Robolectric I का उपयोग करने के सभी उदाहरण मेवेन आधारित प्रतीत हो सकते हैं। क्या कोई मेवेन का उपयोग नहीं कर रहा है? यदि ऐसा है तो मैं वास्तव में आपके IntelliJ प्रोजेक्ट सेटअप को समझना चाहता हूं।इंटेलिजे पर मेवेन के बिना Robolectric का उपयोग कर बाहर कोई भी है?

इस पोस्ट को पढ़ने के बाद

android-unit-test-approaches

यह इकाई के लिए एक स्तरीय दृष्टिकोण के लिए समझदार लगता है testig शुद्ध JUnit, robolectric & एंड्रॉयड परीक्षण ढांचे परीक्षण के संयोजन के साथ एंड्रॉयड परियोजनाओं। यदि कोई भी मैवेन के साथ या उसके बिना ऐसा कर रहा है तो मुझे इंटेलिजे में अपनी परियोजनाओं को कॉन्फ़िगर करने के तरीके के बारे में कुछ समझना अच्छा लगेगा।

मुझे अनुमान है कि मुझे कई परियोजनाओं/मॉड्यूल की आवश्यकता होगी। इस पर किसी भी ज्ञान को कृतज्ञता से प्राप्त हुआ।

उत्तर

6

मैवेन चीजों को और अधिक सुविधाजनक बनाने के लिए एक शानदार टूल है। आप अभी भी एक तरह से Maven बिना IntelliJ के अंदर Robolectric स्थापित करने के लिए के लिए देख रहे हैं, साथ पालन करें:

  1. डाउनलोड Robolectric: https://oss.sonatype.org/index.html#nexus-search;quick~robolectric डाउनलोड नवीनतम जार-साथ-dependencies.jar फ़ाइल। यह डाउनलोड करें और अपने एप्लिकेशन परियोजना के अपने libs/निर्देशिका में रख

  2. निम्न फ़ाइल संरचना (इस Robolectric परीक्षण के लिए अपने निर्देशिका की स्थापना की एक व्यापक रूप से इस्तेमाल विधि है)

    साथ अपने एप्लिकेशन स्रोत की स्थापना
    ProjectName/ 
        src/ 
         main/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaClassesHere.java 
         test/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaTestClassesHere.java 
    
  3. इंटेलिज में, फ़ाइल> परियोजना संरचना पर जाएं। फिर बाएं कॉलम पर, "मॉड्यूल" का चयन करें।
    मध्य कॉलम में, अपना ऐप मॉड्यूल चुनें।
    फिर दाएं कॉलम में, "स्रोत" टैब पर क्लिक करें।
    अब फ़ाइल ब्राउज़र में, "src" निर्देशिका ढूंढें और इसे विस्तृत करें। फिर src के अंदर अपनी "मुख्य" और "परीक्षण" निर्देशिका दोनों का विस्तार करें। शीर्ष पर "मुख्य" के नीचे "जावा" निर्देशिका पर क्लिक करें, नीले "स्रोत" बटन पर क्लिक करें। फिर "परीक्षण" के अंतर्गत "जावा" निर्देशिका के लिए, शीर्ष पर "परीक्षण स्रोत" बटन पर क्लिक करें।
    इसके अलावा, मुख्य "src" निर्देशिका पर क्लिक करें और नीले स्रोत बटन को फिर से नीला बनाने के लिए चयन करें।

  4. अब भी प्रोजेक्ट स्ट्रक्चर विंडो में, बाएं हाथ के कॉलम पर जाएं और "लाइब्रेरीज़" पर क्लिक करें।
    यदि आप पहले से ही मध्य कॉलम में रोबॉलेक्ट्रिक के लिए एक प्रविष्टि देखते हैं, तो उस पर क्लिक करें, फिर लाल कॉलम के शीर्ष पर साइन इन करें - पर क्लिक करें।
    अब मध्य कॉलम के ऊपर हरे "+" चिह्न पर क्लिक करें, और "जावा" का चयन करें। चरण 0 में डाउनलोड किए गए रोबॉलेक्ट्रिक जार में ब्राउज़ करें। (आपकी प्रोजेक्ट की आपकी libs/निर्देशिका में होना चाहिए।
    एक विंडो अब आपसे पूछेगी कि आप कौन से मॉड्यूल को robolectric का उपयोग करना चाहते हैं। सभी मॉड्यूल चुनें robolectric का उपयोग करने की और ठीक क्लिक करें। अब लागू करें क्लिक करें और ठीक जा रहा बाहर परियोजना संरचना के मिलता है।

अब आप सब robolectric साथ परीक्षण के लिए स्थापित कर रहे हैं!

+0

मैवेन मोबाइल विकास के लिए एक जटिल उपकरण है। यह सर्वर साइड डेवलपमेंट के लिए बहुत अच्छा और उपयोगी हो सकता है लेकिन सरल मोबाइल ऐप्स के विकास के लिए नहीं। चींटी एंड्रॉइड एसडीके द्वारा बॉक्स के सर्वश्रेष्ठ और समर्थित आउट का काम करती है। – Sileria

+1

@Mobistry मुझे विपरीत अनुभव मिला है। मेवेन (नेक्सस के साथ) ने मेरी टीम को काफी मदद की है। किसी भी सॉफ्टवेयर प्रोजेक्ट के लिए निर्भरता प्रबंधन महत्वपूर्ण है, खासकर जब यह जटिल बनना शुरू हो जाता है। –

+0

क्या ग्रहण (जूनो) ** के बिना ** मेवेन पर रोबोलेक्ट्रिक परीक्षण चलाने का कोई तरीका है? मुझे रोबोइलेक्ट्रिक वेबसाइट पर त्वरित प्रारंभ चरणों के साथ कोई भाग्य नहीं मिला है। – JaKXz

3

मुझे लगता है कि ज्यादातर लोग रोबोइलेक्ट्रिक का उपयोग कर रहे हैं, मेवेन का उपयोग कर रहे हैं कि ज्यादातर लोग जो रोबोइलेक्ट्रिक का उपयोग करने के लिए परेशान हैं, उनके परीक्षण के बारे में गंभीर हैं।

यह देखते हुए कि वे परीक्षण में गंभीर प्रयास करने के लिए प्रेरित हैं, वे आमतौर पर एक स्वचालित निर्माण में अपने परीक्षण शामिल करने में सक्षम होना चाहते हैं, आमतौर पर एक निरंतर एकीकरण (सीआई) सर्वर, जैसे जेनकिंस या हडसन।

जब आप स्वचालित परीक्षण करना चाहते हैं, तो आपको एक अच्छा कमांड लाइन निर्माण की आवश्यकता है। ग्रैडल एंड्रॉइड के लिए ब्रांड-नए आधिकारिक कमांड लाइन निर्माण उपकरण है, लेकिन ब्रांड-नए होने के नाते, अभी भी एक काम प्रगति पर है, और अभी तक व्यापक रूप से अपनाया नहीं गया है। कोशिश की और सही उपकरण मेवेन है।

बहुत से लोग मेवेन से नफरत करते हैं, लेकिन यह काम पूरा हो जाता है, और एक मील से चींटी धड़कता है।

तो, मेवेन (या ग्रैडल) का उपयोग करना एक बुरा विचार नहीं हो सकता है - यह आपको आपके आईडीई में केवल अपने परीक्षण चलाने की तुलना में आपके परीक्षण के लिए बहुत अधिक धमाके देगा।

+0

इसके लिए धन्यवाद। मैं अपने प्रोजेक्ट के लिए सीआई सेट करना चाहता हूं और आपने अभी मेवेन पर बसने में मेरी मदद की है। मैं एक मैवेन विरोधाभास को सुन रहा हूं, जो काफी हद तक साइटें लंबे समय तक निर्माण और जटिल निर्भरता के मुद्दों के कारणों का उपयोग नहीं कर रहा है। मैं जावा बनाने में कोई विशेषज्ञ नहीं हूं और ऐसा लगता है कि अंततः मेवेन को जो भी आप चाहते हैं उसे करने में मजबूर किया जा सकता है। –

+0

मेवेन लंबे समय तक निर्माण के समय पूरी तरह से गलती नहीं है और जटिल निर्भरता के मुद्दों - सॉफ़्टवेयर के डेवलपर्स जिन्होंने अंतर-निर्भर पुस्तकालयों के जटिल वेब का उपयोग करना चुना है, उसके लिए ज़िम्मेदार हैं। मेवेन बस एक उपकरण है जिसका उपयोग उन निर्भरताओं को प्रबंधित करने के लिए किया जा सकता है। लेकिन मेवेन नफरत से नफरत होगी ... वैसे भी, नया ग्रैडल बिल्ड टूल उन समान निर्भरताओं को प्रबंधित करने में सक्षम होगा, और उम्मीद है कि एक बेहतर काम भी करेगा। – GreyBeardedGeek

2

मैं में एक प्रारंभिक पक्षी हूँ रोबोइलेक्ट्रिक आकाश और मैवेन रास्ता नहीं जा रहा था। मेरा मुख्य प्रेरणा फ्रेमवर्क को आजमा देना था और इसलिए आर ने मेवेन का उपयोग करने के लिए एक दूसरा विचार दिया। मैंने अपनी शिक्षाओं को इस पर दस्तावेज किया है:
http://dasherize.blogspot.in/2013/04/robolectric-beginning.html
और आप सेटअप निर्देश here पा सकते हैं।

नोट: यह Robolectric 1.x के संबंध में है। लेकिन संस्करण में बदलाव के साथ यह बहुत अलग नहीं होना चाहिए।

this answer के लिए मैं पूरी तरह से @ ग्रेबीर्डेडजीक से सहमत हूं। यदि आप सीआई सेट करना चाहते हैं तो आपको मेवेन के साथ बसना होगा।

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