每当我尝试使用PhantomJS进行测试时,Dalek都会给我这个错误。但是,使用GoogleChrome,测试运行正常。
Running tests
/Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273
this.spawned.kill('SIGTERM');
^
TypeError: Cannot read property 'kill' of null
at Object.PhantomJSDriver.kill (/Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273:17)
at EventEmitter.emit (/Users/user/node_modules/dalekjs/node_modules/eventemitter2/lib/eventemitter2.js:312:17)
at Object.Dalek._shutdown (/Users/user/node_modules/dalekjs/lib/dalek.js:346:24)
at emitOne (events.js:77:13)
at process.emit (events.js:169:7)
at process._fatalException (node.js:211:26)
问题是什么?
请注意我使用的是OS X 10.10.5,我是Dalek和JS测试自动化的初学者。谢谢!的
答案 0 :(得分:3)
刚刚遇到这个问题并且在阅读了一段时间后得到了这个步骤:
npm install phantom phantomjs -g
phantomjs -v
find . -name 'phantom*'
并确定dalek的幻影依赖rm -fr ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
cp -r /usr/local/lib/node_modules/phantomjs ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
希望它有所帮助。最好的问候。
答案 1 :(得分:2)
看起来dalek-browser-phantomjs中缺少一些文件
缺少folders/files are from dalek-browser-phantomjs/node-modules/phantomjs/lib
如果单独安装phantomjs(npm install phantomjs),您将获得一个名为"location.js"
的文件+一个名为"phantom"
的目录。 location.js文件包含phantomjs的路径,而phantom文件夹包含二进制文件。
这两个缺失,导致this.spawned设置为null的错误,该错误会导致错误dalekjs/node_modules/dalek-browser-phantomjs/index.js:273:17
。
简而言之:
yourproject / node_modules / dalekjs / node_modules / Dalek的浏览器-phantomjs /节点模块/
现在你所有的测试都应该有效!
答案 2 :(得分:1)
我遇到了同样的问题。
我认为问题可能是你的" node_modules"正在使用root权限创建目录。
因此,在DalekJS主页上,它只是说没有sudo或root运行npm install命令。第一个命令安装模块,第二个命令,但是为phantomJS使用配置你的目录 - 如果你用root权限调用第二个命令(npm install dalekjs --save-dev
)那么这将导致问题。
所以:
sudo npm install dalek-cli -g
这在OS X上对我有用,而且我无法在其他任何地方找到解决方案,所以我想发布...希望它有所帮助!