Setup for headless browser tests with minitest and capybara-webkit.

You need to install selenium-webdriver and capybara-webkit as gem. Capybara-webkit requires two system libraries qt and xvfb. To install execute:

apt-get install libqtwebkit-dev
apt-get install xvfb

as sudo. This works for Debian Wheezy.

Install the gems:

gem install selenium-webdriver
gem install capybara-webkit

To run the headless browser you have to execute:

DISPLAY=localhost:1.0 xvfb-run ruby TEST.rb

or you integrate it to your test.

For the following example export 'DISPLAY=localhost:1.0' is already in ~/.bashrc.

Example test:

`

require 'rubygems'
require 'minitest/autorun'
require 'capybara/dsl'
require 'capybara-webkit'
 
Capybara.default_driver = :selenium
Capybara.default_wait_time = 20
Capybara.javascript_driver = :webkit
Capybara.run_server = false
Capybara.app_host = 'https://services.in-silico.ch'

class LazarWebTest < MiniTest::Test
  include Capybara::DSL

  def test_00_start
    `Xvfb :1 -screen 0 1024x768x16 2>/dev/null &`
    sleep 2
  end
  
  def test_01_visit
    visit('/')
    puts page.source
  end

  def test_99_kill
    `pidof Xvfb|xargs kill`
  end

end `


blog comments powered by Disqus

Published

27 August 2012

Tags