2015-08-26 5 views
8

मेरे पास an addon के लिए परीक्षण हैं जो क्रोम में पास होते हैं, लेकिन फ़ैंटोमज में विफल होते हैं।क्रोम में गुजरने वाले एम्बर परीक्षण, phantomjs में नहीं

यह this question जैसा कोई समस्या प्रतीत होता है। हालांकि, मैंने वहां समाधान की कोशिश की और यह मेरे लिए काम नहीं किया।

कोड सभी उपरोक्त सार्वजनिक रेपो में उपलब्ध है। विफलताओं को गिटूब पर असफल ट्रैविस निर्माण में प्रदर्शित किया जाता है। बेहतर और ठीक करने का निदान करने के बारे में कोई विचार?

संपादित - वास्तविक त्रुटि संदेश


 Died on test #1  at http://localhost:7357/assets/test-support.js:3062 
      at test (http://localhost:7357/assets/test-support.js:1945) 
      at test (http://localhost:7357/assets/dummy.js:2090) 
      at http://localhost:7357/assets/dummy.js:2885 
      at http://localhost:7357/assets/vendor.js:150 
      at tryFinally (http://localhost:7357/assets/vendor.js:30) 
      at http://localhost:7357/assets/vendor.js:156 
      at http://localhost:7357/assets/test-loader.js:29 
      at http://localhost:7357/assets/test-loader.js:21 
      at http://localhost:7357/assets/test-loader.js:40 
      at http://localhost:7357/assets/test-support.js:6775: Can't find variable: Symbol 

अद्यतन

@knownasilya से एक संकेत पर के बाद, मैं वैकल्पिक कोलाहल पर es6.spec.symbols को बदलने के लिए मजबूर कर की कोशिश की: ember-cli-build.js में:

module.exports = function(defaults) { 
    var app = new EmberAddon(defaults, { 
    // Add options here 
+ babel: { 
+  optional: ['es6.spec.symbols'] 
+ } 
    }); 

हालांकि - कोई भाग्य नहीं। हालांकि, यह एक एएस 6 ट्रांसलेशन समस्या की तरह दिखता है। क्या मैंने सफलतापूर्वक विकल्प पास नहीं किया? कोई अन्य संकेत? यदि आप रेपो में देखना नहीं चाहते हैं तो मुझे कोड स्निपेट पोस्ट करने में खुशी होगी। :)

अद्यतन 2

रूप में अच्छी तरह सहित:

+  includePolyfill: true 

काम करता है!

अब मैं कर रहा हूँ करने के लिए पर:

 ReferenceError: Can't find variable: requestAnimationFrame 

मैं इस के लिए एक polyfill रूप में अच्छी तरह के लिए देख रहा हूँ ... लेकिन ember-collection के लिए testem विन्यास, जो एक समान विन्यास के लिए लगता है पर देख रहे हैं, मैं ध्यान दें कि phantomjs परीक्षण बंद कर दिया गया है! अब सवाल यह है: requestAnimationFrame का परीक्षण करने के लिए सबसे अच्छा तरीका phantomjs में?

+1

'ईएस 6 सुविधा' प्रतीक नहीं है, इसलिए एक ईएस 5 शिम मदद नहीं करेगा। – knownasilya

+0

आह ... मुझे लगता है कि आप सही हैं - सफारी में परीक्षण भी मर जाते हैं, जो "प्रतीक" का समर्थन नहीं करता है। लेकिन ... मुझे बिल्ड प्रक्रिया के बारे में अधिक जानने की ज़रूरत है, लेकिन क्या डिब में लिखने से पहले लेबल को पहले से ही पार नहीं किया जाना चाहिए?यह क्रोम में क्यों काम कर रहा है जिसमें स्पॉटी es6 समर्थन भी है? – shaunc

+0

आप किस लाइब्रेरी का उपयोग कर रहे हैं जो अनुरोध का उपयोग करता हैएनीमेशन फ्रेम कार्यक्षमता? –

उत्तर

12

अपराधी अपराधी Can't find variable: Symbol है, जो एक ES2015 (ES6) सुविधा है, यही कारण है कि es5 shim आपके लिए काम नहीं करता है।

चूंकि बेबेल में डिफ़ॉल्ट रूप से पॉलीफिल शामिल नहीं होते हैं, इसलिए आपको पॉलीफिल को शामिल करने के लिए एम्बर-क्ली-बेबेल को मजबूर करने की आवश्यकता होती है।

// ember-cli-build.js 
const EmberApp = require('ember-cli/lib/broccoli/ember-app'); 

module.exports = function(defaults) { 
    const app = new EmberApp(defaults, { 
    'ember-cli-babel': { 
     includePolyfill: true 
    } 
    }); 

    return app.toTree(); 
}; 

उपलब्ध विकल्पों में से जानकारी के लिए, एक अधिक व्यापक समाधान के लिए https://github.com/babel/ember-cli-babel#options

देखते हैं, babel6 (https://github.com/ember-cli/ember-cli/pull/6828) और लक्ष्य (https://github.com/ember-cli/ember-cli/pull/6776) आजमाइए।

नोट: पॉलीफिल में core.js शामिल हैं जिनमें प्रतीक शामिल हैं।

+0

एम्बर-सीएलआई v2.13 इस चेतावनी को फेंकता है: 'अस्वीकरण: "बेबेल" में "includePolyfill" विकल्प डालने से बहिष्कृत किया गया है, कृपया इसे "एम्बर-क्ली-बेबेल" में डालें।' लेकिन उत्तर अभी भी ठीक करने के लिए काम करता है मुद्दा। चेतावनी को खत्म करने के लिए विकल्प हैश में 'कुंजीपॉलिफ़िल: सत्य' को नई कुंजी 'ember-cli-babel' में ले जाएं। उद्धरण का प्रयोग करें। –

+0

इसके लिए धन्यवाद, इस पोस्ट को अपडेट करना भूल गया :) – knownasilya

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