我正在尝试使用Ember、Brunch和JSDom进行无头测试。我正在使用ember早午餐骨架来生成应用程序。
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)
这似乎与0.4.0版本的jsdom有关。具体来自变更日志:
- 更改:NodeList不再具有不一致的数组方法。以前,活动节点列表将具有indexOf,而静态节点列表将拥有所有索引。现在,它们根本没有数组方法,根据规范,这是正确的
如果你正在寻找一个快速的解决方案,那么恢复到jsdom 0.3.4就可以了:
npm uninstall jsdom
npm install jsdom@0.3.4
brunch test
我可以通过卸载brunch
并重新安装它来解决这个问题
似乎npm
使用的是旧的安装版本。
试试看:
npm uninstall brunch -g
npm install brunch -g
npm test
brunch --version # should be 1.5.3