概要
Rails、RSpec、Capybara, Kickstart, Poltergeist, phantomjsでJavaScriptのテスト環境設定
内容
kickstart設定
kickstart.cssのimportをコメントコメントアウトして無効化。
/*--------------------------------- IMPORTS -----------------------------------*/ /*@import url(kickstart-buttons.css); @import url(kickstart-forms.css); @import url(kickstart-menus.css); @import url(kickstart-grid.css); @import url(jquery.fancybox-1.3.4.css); @import url(kickstart-slideshow.css); @import url(prettify.css); @import url(tiptip.css); @import url(fonts/fontawesome/css/font-awesome.min.css);*/
phantomjsインストール(Ubuntu1204)
sudo apt-get update sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev git clone git://github.com/ariya/phantomjs.git cd phantomjs git checkout 1.9 ./build.sh cd /usr/bin sudo ln -s /インストールパス/bin/phantomjs
※./build.shの部分で数十分かかります
インストールの確認
phantomjs --version
Gemfile
gem "poltergeist", "~> 1.3.0" gem "capybara", "~> 2.1.0"
spec_helper
require 'capybara' require 'capybara/rails' require 'capybara/rspec' require 'capybara/dsl' require 'capybara/poltergeist' # ENV[:selenium]はrakeタスクで設定する。 def headless? return false if ENV[:selenium] true end RSpec.configure do |config| config.use_transactional_fixtures = false end if headless? SimpleCov.start "rails" Capybara.javascript_driver = :poltergeist Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, :js_errors => false, :timeout => 60) end else Capybara.javascript_driver = :selenium end RSpec.configure do |config| config.before(:suite) do DatabaseCleaner.strategy = :truncation end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end end