8

我对通过 chrome的插件进行了测试,但在 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

更新

根据@knownasilya 的提示,我尝试强制使用可选的 babel 转换es6.spec.symbols: in 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

我也在为此寻找一个 polyfill...但是查看ember-collection似乎具有类似配置的 testem 配置,我注意到 phantomjs 测试已关闭!现在的问题是:requestAnimationFrame在 phantomjs 中进行测试的最佳方法是什么?

4

1 回答 1

12

罪魁祸首是Can't find variable: SymbolES2015 (ES6) 特性,这就是 es5 shim 不适合你的原因。

由于 babel 默认不包含 polyfill,因此您需要强制 ember-cli-babel 包含 polyfill。

// 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,其中包含符号。

于 2015-08-27T14:25:16.077 回答