早午餐,JSDom:对象[jsdom NodeList]:包含3个项目没有方法'map'

时间:2013-02-07 18:36:43

标签: ember.js mocha jsdom brunch

我正在尝试使用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)

2 个答案:

答案 0 :(得分:2)

看起来这打破了j.0dom的0.4.0版本。具体来自changelog

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

如果你正在寻找一个快速修复,恢复到jsdom 0.3.4应该可以做到这一点:

npm uninstall jsdom
npm install jsdom@0.3.4
brunch test

答案 1 :(得分:1)

我可以通过卸载brunch并再次安装来解决此问题 似乎npm使用的是旧版本。

试试吧:

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

brunch --version # should be 1.5.3