Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Headless integration testing w/ HtmlUnit: enables testing JavaScript-driven web sites

tree: 9a97aea7f9

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 _backup
Octocat-spinner-32 doc add doc/images November 09, 2009
Octocat-spinner-32 example
Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore
Octocat-spinner-32 MIT-LICENSE Add readme and license November 04, 2009
Octocat-spinner-32 README.textile
Octocat-spinner-32 TODO
Octocat-spinner-32 init.rb last weeks work on integrating Locator and removing lots of cruft February 09, 2010


Steam is a headless integration testing tool driving HtmlUnit to enable testing JavaScript-driven web sites. In that it is similar to Culerity which drives Celerity (which also drives HtmlUnit).


You can find a demo application here:


Steam currently has the following dependencies:

  • Working Java Runtime
  • RJB (if you’re on OS X, see Troubleshooting section)

After that, installing Steam for a Rails project should be as simple as typing

$ ruby script/plugin install git://

Note: Since the HtmlUnit and all the JARs it depends on come packaged with Steam, the download might take a while.


You can control some parameters in init.rb for fitting your needs:

Steam.configure do |config|
#:javaloadparams: “-Xms256M -Xmx2048M”
config.java_load_params = “-Xmx2048M”
# your test server running steam
config.server_name = “localhost”
# the port you start your test server
config.server_port = “3000”
# the url scheme for rack
config.rack_url_scheme = “http”
# defaut charset
config.charset = “utf-8”
# DRB uri
config.drb_uri = “druby://”
# for which server the session request the env
config.request_env_for = “http://localhost”


You can use Steam by itself as well as with Cucumber. You can find an example for a Cucumber setup in examples/cucumber/env.rb.

Steam is widely compatible with Webrat – many actions are implemented and take the same or very similar parameters as their Webrat equivalent. You should even be able to use the default webrat_steps.rb that ships with Cucumber.


Installing RJB on Mac OS X:

The visudo way worked for us. Don’t forget to add yourself to the sudoers file, though.


Kudos to Alexander Lang ( for writing Culerity ( which pioneered full-stack AJAX-enabled integration testing in Rails.


Sven Fuchs <>
Clemens Kofler <>

Something went wrong with that request. Please try again.