2015-08-26 37 views
8

我有測試an addon通過鉻,但失敗phantomjs。燼測試通過鉻,而不是phantomjs

這似乎是一個類似於this question的問題。但是,我嘗試了那裏的解決方案,但它並不適合我。

該代碼全部在上面鏈接的公共回購協議中可用。失敗在github上構建失敗的travis中展示。任何關於如何更好地診斷和修復的想法?

編輯 - 實際的錯誤信息


 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 

UPDATE

從@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'] 
+ } 
    }); 

但是 - 沒有運氣。不過,它確實看起來像是一個es6轉譯問題。我沒有成功通過該選項嗎?任何其他提示?如果您不想查看回購,我很樂意發佈代碼片段。 :)

更新2

包括還有:

+  includePolyfill: true 

作品!

現在我到:

 ReferenceError: Can't find variable: requestAnimationFrame 

我正在尋找一個這樣的填充工具,以及...但看着爲ember-collection的testem配置,這似乎有類似的配置,我注意phantomjs測試已關閉!現在的問題是:在幻像中測試​​的最佳方法是什麼?

+1

不是'Symbol'是ES6功能,所以ES5墊片不會幫助。 – knownasilya

+0

啊......我認爲你是對的 - 測試在Safari中死去,它不支持「符號」。但是......我確實需要更多地瞭解構建過程,但是在寫作之前不應該將它轉化爲已經轉化的東西?爲什麼它在chrome中也有點es6支持? – shaunc

+0

你使用的是什麼庫,使用requestAnimationFrame功能? –

回答

12

違規罪魁禍首是Can't find variable: Symbol,這是ES2015(ES6)功能,這就是爲什麼es5墊片不適合你。

由於默認情況下,babel不包含polyfill,因此您需要強制ember-cli-babel包含polyfills。

// 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)一試。

注意:polyfill包含core.js,其中包含符號。

+0

Ember-CLI v2.13拋出此警告:'退化:將「includePolyfill」選項放在「babel」中已棄用,請將其放入「ember-cli-babel」中,但答案仍然可以解決問題。將'includePolyfill:true'移到選項哈希中的新鍵'「ember-cli-babel」'以消除警告。使用引號。 –

+0

謝謝你,忘了更新這篇文章:) – knownasilya