2015-09-17 22 views
8

के साथ एपियम में हाइब्रिड मूल ऐप के यूआरएल पर नेविगेट करें हम एक हाइब्रिड मूल अनुप्रयोग (कॉर्डोवा/फोनगैप/कोणीय/आयनिक) का निर्माण कर रहे हैं।प्रोटैक्टर

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

मैं सॉस लैब्स (एपियम) द्वारा होस्ट किए गए प्लेटफॉर्म सिम्युलेटर पर 'पैक/निर्मित' एप्लिकेशन के खिलाफ भी वही परीक्षण चलाने के लिए चाहता हूं। यह लगभग काम करता है।

मुझे जो परेशानी है वह अभी आवेदन में जा रही है। जाहिर है

browser.get('http://localhost:8100') 

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

file:///android_asset/www/index.html#/login 

यह समझ में आता है और सही है। लेकिन अगर मैं कोशिश करता हूं:

browser.get('file:///android_asset/www/index.html#/login') 

बुरी चीजें होती हैं।

मैं दो समाधानों में से एक के लिए देख रहा हूँ:

1) को समझने के लिए एक सिम्युलेटर में एक संकर मूल एप्लिकेशन रन के लिए यूआरएल के लिए नेविगेट करने के लिए कैसे

या

2) किसी भी तरह का परीक्षण किया पता है कि यह हाइब्रिड देशी कॉर्डोवा कंटेनर के भीतर चल रहा है और शुरुआती पृष्ठ पर नेविगेट छोड़ रहा है (क्योंकि एप्लिकेशन एपियम द्वारा स्वचालित रूप से लोड हो जाता है)।

धन्यवाद।

+2

यदि आप 'फ़ाइल: //' प्रोटोकॉल के साथ नेविगेट करना चाहते हैं, तो यह क्यू/ए देखें ([प्रोटैक्टर के साथ फाइल खोलना] (http://stackoverflow.com/questions/24824491/opening-a -file-साथ-चांदा)। इसके अलावा [मोबाइल सेटअप] (https://github.com/angular/protractor/blob/master/docs/mobile-setup.md) के लिए एक प्रोटैक्टर गाइड भी है, जिसमें एपियम के साथ प्रोट्रैक्टर स्थापित करने के बारे में बहुत सारी जानकारी है। एमुलेटर की पहचान करने के लिए आप एक विधि 'isCordova' लागू कर सकते हैं, जो उपयोगकर्ता एजेंट की जांच करेगा या [cordova-plugin-device] (https://github.com/apache/cordova-plugin-device) का उपयोग करने के लिए यह बताएगा कि वर्तमान env " मोबाइल "एनवी। –

+1

यदि आप दो अलग-अलग वातावरणों पर एक ही परीक्षण चलाने की कोशिश कर रहे हैं, तो शायद अलग-अलग सेटअप के साथ दो प्रोटैक्टर कॉन्फ़िगर होने के लायक हैं। –

+0

धन्यवाद @MichaelRadionov। मैं पहले से ही अलग प्रोटैक्टर कॉन्फ़िगरेशन का उपयोग कर रहा हूं - सॉस/एपियम बनाम आयनिक सिम्युलेटर के माध्यम से स्थानीय रूप से सेवा के लिए क्रेडेंशियल और क्षमताओं को सेट करने के लिए इसकी आवश्यकता थी। जो मैं समझता हूं, मोबाइल एप्लिकेशन को 'सामान्य' मोबाइल ब्राउज़र में एप्लिकेशन चलाने की दिशा में तैयार किया जाता है - यानी क्रोम - एक हाइब्रिड देशी ऐप का परीक्षण करने के विरोध में। आपके द्वारा लिखे गए लिंक मुझे बहुत उपयोगी लगने के लिए इंगित करते हैं। मैं देखूंगा कि क्या वे बाद में मदद करते हैं। –

उत्तर

0

इसमें थोड़ी देर हो रही है, लेकिन अगर मैं सही ढंग से समस्या को समझता हूं, तो आपको स्थानीय स्तर पर चलने और सॉस के माध्यम से चलने के बीच अंतर करने की आवश्यकता है। चूंकि आपके पास पहले से ही दो प्रोटैक्टर फाइलें हैं, क्यों सॉस कॉन्फ़िगरेशन में browser.get पर कॉल करने से बचें? या क्या कुछ स्पष्ट है कि मुझे याद आ रही है?

+0

हाँ, यह अनिवार्य रूप से मैंने एंड्रयू किया है। यह एक मामूली काम है, मुझे लगता है, क्योंकि किसी बिंदु पर मैं एक नया सूट लिखना चाहता हूं जो एक ज्ञात स्थान पर शुरू होता है।आम तौर पर मुझे लगता है कि यह ब्राउज़र को 'स्टार्ट' पर नेविगेट करके पूरा किया जाता है - जहां भी वह विशेष सूट साइट को चलाने शुरू कर देगा। मोबाइल ऐप के लिए, मेरे पास 'स्टार्ट' पेज सेट करने का कोई तरीका नहीं है। अभी के लिए मैंने एक सम्मेलन अपनाया है कि लॉगिन परीक्षण पहले आते हैं और फिर हर दूसरे टेस्ट (जो एक प्रमाणित उपयोगकर्ता मानता है) को 'होम' व्यू पर शुरू और समाप्त होना चाहिए। –

+0

हमम ... ठीक है, 'baseUrl' संपत्ति है और' browser.getUrl ('/') 'आपको शुरुआत में नेविगेट करना चाहिए। जब तक आप सापेक्ष पथ का उपयोग करते रहें, तब तक आपके आवेदन के साथ नेविगेट करने में कोई समस्या नहीं होनी चाहिए। –

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