【问题标题】:What is this DalekJS error when I try to run a test via PhantomJS?当我尝试通过 PhantomJS 运行测试时,这个 DalekJS 错误是什么?
【发布时间】:2015-09-22 10:18:41
【问题描述】:

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

【问题讨论】:

    标签: testing phantomjs automated-tests headless-browser dalekjs


    【解决方案1】:

    刚遇到这个问题,看了一会儿就到了这个步骤:

    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,您的测试应该可以运行了。

    希望对您有所帮助。最好的问候。

    【讨论】:

      【解决方案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/

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

      【讨论】:

      • 您的解决方案对我有用,只需安装最新的 phantomjs 而无需修改和目录。
      • 这个解决方案也对我有用。我正在使用 Windows 10、Node 4.4.5、DalekJS CLI 0.0.5、DalekJS 0.0.9、PhantomJS 2.1.1
      【解决方案3】:

      我也遇到了同样的问题。

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

      因此,在 DalekJS 的主页上,它只是简单地说要在没有 sudo 或 root 的情况下运行 npm install 命令。第一个命令会安装模块,第二个命令会配置您的目录以供 phantomJS 使用——如果您以 root 权限调用第二个命令 (npm install dalekjs --save-dev),则会导致问题。

      所以:

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

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

      【讨论】:

      • npm install dalekjs --save-dev 失败...即安装在 phantomjs 安装时暂停。任何的想法 ?我正在使用 OS X
      • 嘿@Selly 你是如何解决第 4 步的? Github 问题看起来并没有真正解决。没有sudo,我无法安装dalek ...
      • Whit Sillicum 说:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-30
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 2022-10-23
      • 2019-02-10
      相关资源
      最近更新 更多