gpt4 book ai didi

javascript - ember 测试通过 chrome,而不是 phantomjs

转载 作者:数据小太阳 更新时间:2023-10-29 04:07:53 27 4
gpt4 key购买 nike

我有 an addon 的测试在 chrome 中传递,但在 phantomjs 中失败。

好像是类似this question的问题.但是,我尝试了那里的解决方案,但它对我不起作用。

所有代码都可以在上面链接的公共(public)仓库中找到。失败在 github 上失败的 travis build 中展示。关于如何更好地诊断和修复的任何想法?

EDIT -- 实际错误信息


        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 的提示,我尝试在 ember-cli-build.js 中强制执行可选的 babel 转换 es6.spec.symbols:

 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 的测试配置,它似乎具有类似的配置,我注意到 phantomjs 测试已打开离开!现在的问题是:在 phantomjs 中测试 requestAnimationFrame 的最佳方法?

最佳答案

罪魁祸首是 Can't find variable: Symbol,这是一个 ES2015 (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,其中包含 Symbols。

关于javascript - ember 测试通过 chrome,而不是 phantomjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32231773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com