我在Jenkins上构建项目时遇到此错误。执行在我的本地计算机上运行无忧。我已将这些添加到我的Gemfile中。
gem 'poltergeist'
gem 'capybara'
gem 'phantomjs'
错误只发生在詹金斯身上。 使用phantomjs 2.1.1.0
答案 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变量