0

每次我尝试使用 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 测试自动化的初学者。谢谢!

4

3 回答 3

3

刚刚遇到这个问题,在阅读了一段时间后,得到了这个步骤:

  1. 按照建议进行 DalekJS 安装
  2. npm install phantom phantomjs -g
  3. 检查 phantomJS 安装是否正在运行phantomjs -v
  4. (可选)再次运行 dalek 以查看它是否失败
  5. 搜索正在运行的本地 phantomjs 安装
    find . -name 'phantom*'并识别 dalek 的 phantomjs 依赖项
  6. 删除dalek的phantomjs依赖运行
    rm -fr ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
  7. 将最近安装的phantomJS复制到刚刚删除的运行路径
    cp -r /usr/local/lib/node_modules/phantomjs ./node_modules/dalek-browser-phantomjs/node_modules/phantomjs
  8. 再次运行dalek,您的测试应该可以工作。

希望能帮助到你。此致。

于 2016-05-26T15:24:25.150 回答
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.

简而言之:

  1. 从 npm 下载最新的 phantom.js (npm install phantomjs)
  2. 将其替换为项目中的 phantomjs 文件夹。地点:

你的项目/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/node-modules/

现在你所有的测试都应该工作了!

于 2016-02-23T17:37:57.680 回答
1

我遇到了同样的问题。

我相信问题可能是您的“node_modules”目录是使用root权限创建的。

所以,在 DalekJS 的主页上,它只是简单地说要运行 npm install 命令而不需要 sudo 或 root。第一个命令安装模块,第二个命令,但是配置您的目录以供 phantomJS 使用 - 如果您npm install dalekjs --save-dev使用 root 权限调用第二个命令 (),那么这将导致问题。

所以:

  1. 安装包: sudo npm install dalek-cli -g
  2. 使用默认的“package.json”文件配置你的目录——听起来你已经完成了 1 和 2
  3. 然后打开一个 CLI/终端并转到包含您的 package.json 和“测试”目录的目录。
  4. 在没有 ROOT/SUDO 权限的情况下执行下一个 npm 命令:`npm install dalekjs --save-dev'(必须在 Ubuntu 上执行类似操作)。我接下来遇到的问题是 npm caommand 挂起——在 Github 上记录

这在 OS X 上对我有用,我无法在其他任何地方找到修复程序,所以我想我会发布......希望它有帮助!

于 2015-10-12T19:13:20.053 回答