Path: | README |
Last Update: | Mon Jun 05 23:59:28 W. Europe Daylight Time 2006 |
Selenium on Rails provides an easy way to test Rails application with Selenium Core.
This plugin does four things:
win32-open3 is needed if you’re on Windows and want to run your tests as a Rake task (see test:acceptance), i.e. you don’t have to install it but it’s recommended.
You can build it from source or install the binary:
The test cases can be written in a number of formats. Which one you choose is a matter of taste. You can generate your test files by running script/generate selenium or by creating them manually in your /test/selenium directory.
Selenese is the dumbest format (in a good way). You just write your commands delimited by | characters.
|open|/selenium/setup| |open|/| |goBack|
If you don’t want to write Selenese tests by hand you can use SeleniumIDE which has support for Selenese.
SeleniumIDE makes it super easy to record test and edit them.
RSelenese enable you to write your tests in Ruby.
setup :fixtures => :all open '/' assert_title 'Home' ('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
See SeleniumOnRails::TestBuilder for available commands.
You can write your tests in HTML/RHTML but that’s mostly useful if you have existing tests you want to reuse.
If you have some common actions you want to do in several test cases you can put them in a separate partial test case and include them in your other test cases.
A partial test case is just like a normal test case besides that its filename has to start with _:
#_login.rsel open '/login' type 'name', name type 'password', password click 'submit', :wait=>true
To include a partial test case you write like this in a Selenese test case:
|includePartial|login|name=John Doe|password=eoD nhoJ|
in a RSelenese test case:
include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
and in a RHTML test case:
<%= render :partial => 'login', :locals => {:name = 'Joe Schmo', :password => 'Joe Schmo'.reverse} %>
There are a number of settings available. You make them by renaming config.yml.example to config.yml and make your changes in that file.
Per default this plugin is only available in test environment. You can change this by setting environments, such as:
#config.yml environments: - test - development
You can run all your Selenium tests as a Rake task.
First, if you’re on Windows, you have to make sure win32-open3 is installed. Then you have to configure which browsers you want to run, like this:
#config.yml browsers: firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe' ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
Now you’re all set. First start a server:
script/server -e test
Then run the tests:
rake test:acceptance
Now it should work, otherwise let me know!
More work is needed on test:acceptance on Windows to be able to start the server when needed.
Selenium has support for user_extension.js which is a way to extend the functionality of Selenium Core. However there is currently no easy way to add such a file in Selenium on Rails.
Currently there is only support to load fixtures and to wipe the session in /selenium/setup. Is there a need for more kinds of setups or teardowns?
Creating an editor for the test cases is currently considered out of scope for this plugin. SeleniumIDE does such a good job and has support for the Selenese format.
For more information, check out the website.