【问题标题】:Brunch, JSDom : Object [ jsdom NodeList ]: contains 3 items has no method 'map'早午餐,JSDom:对象 [jsdom NodeList]:包含 3 个项目没有方法“地图”
【发布时间】:2013-01-23 09:17:21
【问题描述】:

我正在尝试使用 Ember、Brunch 和 JSDom 进行无头测试。我正在使用 ember-brunch-skeleton 生成应用程序。

https://github.com/fuseelements/ember-brunch-skeleton

我已经安装了所有依赖项。

当我尝试运行“早午餐测试”时,出现以下错误。似乎我在这里缺少一些基本的东西,但这是我第一次使用 node.js/jsdom/mocha 等。我缺少什么?

  TypeError: Object [ jsdom NodeList ]: contains 3 items has no method 'map'
  at getScriptFilesPath (/usr/local/lib/node_modules/brunch/lib/commands/test.js:62:60)
  at readTestFiles (/usr/local/lib/node_modules/brunch/lib/commands/test.js:80:25)
  at fs.readFile (fs.js:176:14)
  at fs.close     (/usr/local/lib/node_modules/brunch/node_modules/rimraf/node_modules/graceful-fs/graceful-fs.js:90:5)
  at Object.oncomplete (fs.js:297:15)

【问题讨论】:

标签: ember.js mocha.js jsdom brunch


【解决方案1】:

我可以通过卸载 brunch 并重新安装来解决这个问题。
npm 似乎在使用旧的安装版本。

试试吧:

npm uninstall brunch -g
npm install brunch -g
npm test

brunch --version # should be 1.5.3

【讨论】:

    【解决方案2】:

    看起来这与 jsdom 的 0.4.0 版本中断了。具体来自changelog

    • 更改:NodeList 不再有不一致的数组方法。以前,活动节点列表将具有 indexOf,而静态节点列表将具有它们全部。现在,它们根本没有数组方法,按照规范是正确的。

    如果您正在寻找快速修复,恢复到 jsdom 0.3.4 应该可以解决问题:

    npm uninstall jsdom
    npm install jsdom@0.3.4
    brunch test
    

    【讨论】:

    • 这个修复也对我有用。我对节点和 npm 很陌生。 brunch 不应该将 jsdom 指定为测试的要求并将其锁定到 0.3.4 吗?
    • @simple10 我可能是错的,但从技术上讲 jsdom 是一个 mocha 依赖项,我认为 brunch 旨在提供工具,但如果你想选择其他东西也保持不可知
    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 2018-08-27
    • 2016-01-19
    • 1970-01-01
    • 2015-09-03
    • 2016-12-10
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多