您平台上的 PhantomJS 浏览器没有二进制文件。请设置 "PHANTOMJS_BIN" 环境变量

No binary for PhantomJS browser on your platform. Please, set "PHANTOMJS_BIN" env variable

我的 package.json 看起来像这样..

"karma-phantomjs-launcher": "^0.1.4",
"karma-safari-launcher": "^0.1.1",
"karma-sinon-chai": "~0.2.0",
"karma-spec-reporter": "~0.0.16",
"mocha": "~1.20.1"

我的 npm 版本是 2.2.0

当我 运行 业力测试 - 业力开始时,我为什么会得到这个 my.conf.js

这似乎是 phantom js runner 和 phantom js 版本的问题。

https://github.com/karma-runner/karma-phantomjs-launcher/issues/31

我是如何解决问题的..

   # install 
   npm install -g karma-phantomjs-launcher

   # temporary path.. set the path
   export PHANTOMJS_BIN=/usr/local/lib/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs

   karma start my.conf.js

我在使用旧版本的节点时也遇到了这个问题。如果您不想硬编码这个环境变量,更新您的节点版本将解决问题。只需执行以下操作(OSX 说明):

npm uninstall -g phantomjs
npm cache clean -f
brew upgrade nodejs
rm -rf node_modules
npm install -g YOUR_GLOBAL_DEPENDENCIES
npm install

编辑:更新说明以确保没有全局 phantomjs 依赖项

我运行遇到了同样的问题。修复方法是手动设置 PHANTOMJS_BIN 变量以指向正确的 phantomjs 路径。 karma 启动器以某种方式试图查看 PHANTOMJS_BIN 设置的错误路径。

以下是对我有用的方法:

$ echo $PHANTOMJS_BIN

/usr/local/lib/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs

$ export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs

$ grunt test

之后一切正常

有同样的问题,以上都做了,没有结果 刚刚从全局 node_modules 和项目本地删除了 'karma-phantomjs-launcher' 文件夹, 叫 'npm install' 一切都很好!

运行 遇到这样的问题。我所做的是全局安装 phantomjs npm install -g phantomjs。然后转到 karma-phantomjs-launcher 模块文件夹并打开 index.js 文件。然后我去了 phantomJSExePath 函数并注释掉了之前的内容(不确定我做的事情是否安全)。然后我放了

return 'C://Users/user/AppData/Roaming/npm/node_modules/phantomjs/lib/phantom/phantomjs.exe';

让我免于重新输入临时导出。

我用 karma-phantomjs-launcher@1.0.0 遇到了这个问题,我还安装了 phantomjs@2.1.3。

事实证明,phantomjs 已被弃用,取而代之的是 phantomjs-prebuilt。

卸载两个包并重新安装 phantomjs-prebuilt 修复了 karma-phantomjs-launcher 的问题:

npm -g remove phantomjs phantomjs-prebuilt
npm -g install phantomjs-prebuilt

我的 karma.conf.js 有这一行:process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs'; 在顶部。我刚刚意识到!我评论了,有效

我删除了项目下的所有 node_modules 文件夹和 运行 "npm install"。这确实解决了我的问题。

我有时遇到同样的问题。我有一个 gruntfile.jspackage.json ,我在其中明确添加 phantomjs-prebuilt 作为依赖项。但是我的 CI 服务器有时可以 运行 grunt karma 顺利而有时却无法声称 No binary for PhantomJS browser on your platform. Please, set “PHANTOMJS_BIN” env variable.

所以我添加了一个grunt task来确保PHANTOMJS_BIN变量在测试运行s之前被设置,然后解决了这个恼人的问题。

grunt.registerTask('ensurePhantomJsPath', function () {
    process.env.PHANTOMJS_BIN = './node_modules/phantomjs-prebuilt/bin/phantomjs';
    console.log(process.env.PHANTOMJS_BIN);
});

最后 Gruntfile.js 看起来像这样:

grunt.registerTask('ensurePhantomJsPath', function () {
    process.env.PHANTOMJS_BIN = './node_modules/phantomjs-prebuilt/bin/phantomjs';
    console.log(process.env.PHANTOMJS_BIN);
});

grunt.registerTask('test', ['ensurePhantomJsPath', 'karma']);

运行 以下命令:

npm remove phantomjs -g
npm remove phantomjs
npm install phantomjs

完成此安装后:

您将收到如下消息:

Linking to global install at /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs

复制此路径并 运行:

export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs

基本上发生的事情是:karma 正在尝试启动浏览器但无法找到它的 bin。 一旦将路径导出到正确的路径,它 运行s.

我在 OSX 上解决了这个问题:使用 sudo 删除并创建文件 karma.config.js