Cliver :: Dependency :: NotFound:在你的路径上找不到可执行文件[" phantomjs"]。詹金斯

时间:2017-07-11 14:18:16

标签: ruby jenkins rubygems phantomjs poltergeist

我在Jenkins上构建项目时遇到此错误。执行在我的本地计算机上运行无忧。我已将这些添加到我的Gemfile中。

gem 'poltergeist'
gem 'capybara'
gem 'phantomjs'

错误只发生在詹金斯身上。 使用phantomjs 2.1.1.0

3 个答案:

答案 0 :(得分:3)

如果您正在使用Rails的系统测试,则需要将适当的选项传递给驱动程序,以使其使用phantomjs gem中的PhantomJS:

require 'phantomjs'

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :poltergeist, options: { phantomjs: Phantomjs.path }
end

答案 1 :(得分:2)

从phantomjs gem自述文件中,你需要做

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
          base.OnModelCreating(modelBuilder);

        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

    }

自动配置poltergeist驱动程序 - https://github.com/colszowka/phantomjs-gem#usage-with-poltergeistcapybara - 如果手动注册了poltergeist驱动程序,则指定PhantomJS位置 - https://github.com/colszowka/phantomjs-gem#manual-setup。这是因为phantomjs gem不会将二进制文件安装到PATH中,所以  需要告诉恶作剧者它在哪里。在你的本地机器上,它可能会在你的PATH中找到另一个PhantomJS安装。

答案 2 :(得分:0)

此脚本对我有用

#!/usr/bin/env bash
# This script install PhantomJS in your Debian/Ubuntu System
#
# This script must be run as root:
# sudo sh install_phantomjs.sh
#

if [[ $EUID -ne 0 ]]; then
    echo "This script must be run as root" 1>&2
    exit 1
fi

PHANTOM_VERSION="phantomjs-2.1.1"
ARCH=$(uname -m)

if ! [ $ARCH = "x86_64" ]; then
    $ARCH="i686"
fi

PHANTOM_JS="$PHANTOM_VERSION-linux-$ARCH"

apt-get update
apt-get install build-essential chrpath libssl-dev libxft-dev -y
apt-get install libfreetype6 libfreetype6-dev -y
apt-get install libfontconfig1 libfontconfig1-dev -y

cd ~
wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
tar xvjf $PHANTOM_JS.tar.bz2

mv $PHANTOM_JS /usr/local/share
ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin

授予文件可执行权限

chmod +x install_phantomjs.sh

然后推送到git进行重建

git add install_phantomjs.sh
git commit -m 'Install PhantomJS'
git push

NB:在https://bitbucket.org/ariya/phantomjs/downloads/处找到最新的PhantomJS版本,然后可以适当地编辑PHANTOM_VERSION env变量