2017-06-13 19 views
5

मेरे द्वारा बनाए गए एक बॉयलरप्लेट प्रतिक्रिया परियोजना, packages.json सामान्य संदिग्धों है:नौसिखिया सेलेनियम E2E के साथ प्रतिक्रिया

  • prestart
  • शुरू
  • सूची
  • परीक्षण
  • आदि

मैं अपने ई 2 ई ढांचे के लिए सेलेनियम का उपयोग कर रहा हूं।

it('should launch a browser',() => { 

    const By = webDriver.By; 
    let driver = new webDriver.Builder() 
     .forBrowser('chrome') 
     .build(); 

    // verify Continue button exist on page 
    driver.navigate().to('http://localhost:3000').then(() => driver.findElement(By.id('submitButton')).getAttribute('value')) 
     .then(buttonValue => expect(buttonValue).toEqual('Continue')); 

    }); 

मेरी साइट की शुरूआत अगर मैं npm start करते हैं, और मेरी E2E एक अतिरिक्त क्रोम ब्राउज़र की शुरूआत और मेरे चल साइट पर नेविगेट: मैं निम्नलिखित परीक्षण localhost:3000। परीक्षण सफल होता है।

मेरा सवाल यह है कि, मैं npm start का उपयोग करके मेरी साइट की तरफ से बिना किसी ईटीई को अलग से कैसे चला सकता हूं।

मैं प्रतिक्रिया और सेलेनियम के लिए नौसिखिया हूं, अगर मुझे इस पोस्ट पर बहुत सारी जानकारी मिल रही है, तो मैं पहले से माफ़ी मांगता हूं।

+0

हे वहाँ पॅकमैन! मुझे लगता है कि मेरे पास आपके लिए समाधान हो सकता है, लेकिन आपको ** package.json ** सामग्री के साथ अपना प्रश्न अपडेट करने की आवश्यकता है क्योंकि यह 'packages.json सामान्य संदिग्ध है: स्टार्ट सूची परीक्षण आदि को प्रतिष्ठित करें ...' काट उसे। इसके अलावा, मोचा के अलावा, क्या आप अपने सेलेनियम जेएस-बाइंडिंग की आपूर्ति के लिए किसी अन्य परीक्षण ढांचे का उपयोग कर रहे हैं? – iamdanchiv

+1

ठीक है, आपकी साइट कहीं कहीं चलनी है। यदि यह लोकहोस्ट पर नहीं चलता है, तो इसे कहीं और चलाना चाहिए, अन्यथा परीक्षण करने के लिए कुछ भी नहीं है। – Sulthan

+0

पॅकमैन, क्या आपने मेरा जवाब पढ़ा है, या टिप्पणी सुझाव? अभी भी इस मुद्दे को डीबग करना चाहते हैं? आपका बक्षीस पहले से ही अनुग्रह अवधि में है, इसलिए यदि आप कोई कार्रवाई नहीं करते हैं, तो यह खो जाएगा। – iamdanchiv

उत्तर

5

ठीक है, क्योंकि आपको एनपीएम "scripts" ऑब्जेक्ट के साथ प्रश्न जानकारी अपडेट करने का समय नहीं मिला, तो मैं इसे अंधेरे में एक शॉट देने की कोशिश करूंगा।

सबसे पहले, अपने शब्दों के कारण, मैं आपके सवाल का दो तरह से व्याख्या कर सकते हैं:

  • क) आप,अलग अपने E2E परीक्षण चलाना चाहते हैं w/ओ अपने सर्वर। चल रहा है (जिसे npm start के माध्यम से शुरू किया गया है);
  • ख) आप अपने E2E परीक्षण प्रारंभ होने से आपके सर्वर ट्रिगर किए बिना, npm start के माध्यम से चलाना चाहते हैं।;

क) आप अपनी स्क्रिप्ट अलग से चलाने के लिए, जैसा कि आप मोचा उपयोग कर रहे हैं को देखने चाहते हैं, तो आप उन्हें के माध्यम से गति प्रदान कर सकते हैं:। ./node_modules/.bin/mocha <pathToTests>/<testFile>

अब, जब से तुम है कि आप npm test स्क्रिप्ट का उपयोग कर रहे हैं अपने प्रश्न में कहा गया है, तो वह सबसे अच्छा स्विच अपने E2E परीक्षण करने के लिए निष्पादन बाध्य करने के लिए किया जाना चाहिए:

package.json (स्क्रिप्ट वस्तु) :

"scripts": { 
    "test": "mocha --reporter spec <pathToTests>/<testFile>", 
    "start": "node <yourServerName>.js" 
}, 

कृपया ध्यान दें कि mocha <pathToTests>/<testFile>./node_modules/.bin/mocha <pathToTests>/<testFile> के बराबर है, क्योंकि NPMअंदर binaries के लिए लग रहा हैऔर जब मोचा स्थापित किया गया था, तो उसने इसे इस निर्देशिका में स्थापित किया।

नोट: कई संकुल, एक bin, या .bin अनुभाग है स्क्रिप्ट कि मोचा के समान NPM से कहा जा सकता है की घोषणा की। यदि आप यह जानना चाहते हैं कि आप किस तरह की अन्य बाइनरी चला सकते हैं, तो बस ls node_modules/.bin जारी करें।


ख।) इस देखभाल में, मैं आपकी समस्या NPM पैकेज सामग्री के आधार पर कुछ स्क्रिप्ट मूल्यों दोषी के कारण हो सकता है। विशेष रूप से, यदि आपके पास अपने पैकेज की रूट में server.js फ़ाइल है, तो npm प्रारंभ कमांड को server.js पर डिफ़ॉल्ट कर देगा।

तो तुम के माध्यम सेnpm start अपने E2E परीक्षण शुरू कर रहे हैं तो अपने package.json में इस ("start": "mocha <pathToTests>/<testFile>") होने और अपने पैकेज के जड़ में एक server.js फ़ाइल नहीं है, तो NPM होगा node server.js पर प्रारंभ कमांड को डिफ़ॉल्ट करें।

जो मामले में, आप या तो अपने सर्वर स्क्रिप्ट एक अन्य जगह पर परियोजना में ले जाते हैं, या स्विच आप E2E परीक्षण (see section b.)) को गति प्रदान करने का उपयोग कर रहे बदल सकता है।

आशा है कि यह आपकी समस्या हल करे और यदि नहीं, तो package.json"scripts" ऑब्जेक्ट के लिए तत्पर हैं ताकि हम वास्तव में देख सकें कि क्या हो रहा है। :)

चीयर्स!

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