Path: | README.md |
Last Update: | Sat Feb 23 07:11:46 +0000 2019 |
## Introduction
Culerity integrates Cucumber and Celerity in order to test your application‘s full stack.
Culerity lets you:
## Getting Started
The following guide is written for a Rails application (tested with 2.3.5) but Culerity should work with any other Web Framework that is supported by Cucumber.
First download JRuby and unpack it to some location, for example $HOME/jruby. Make sure that the jruby executable is in your path. You can do this by either setting your PATH accordingly…
export PATH=$HOME/jruby/bin:$PATH
… or by creating a symlink from your bin directory:
ln -s $HOME/jruby/bin/jruby /usr/bin/jruby
You will need the celerity gem installed into JRuby:
jruby -S gem install celerity
Now install the Culerity gem:
gem install culerity --source http://gemcutter.org
Assuming you have a Rails application set up already you can run the RSpec, Cucumber and Culerity generators:
cd RAILS_ROOT script/generate rspec script/generate cucumber script/generate culerity
This creates the features folder and a file culerity_steps.rb into your application. This file contains step definitions for basic interactions like clicking links or filling out forms. Now is a good time to get rid of any webrat specific files generated by cucumber (i.e. features/step_definitions/webrat_steps.rb).
After you have written a first feature you can run it just like you would run a standard cucumber feature. The only difference is that you have to start a web server (e.g. mongrel) with the test environment enabled beforehand.
rake culerity:rails:start cucumber features/my_feature.feature
The Rails instance uses a special environment culerity.
When you have finished running culerity/cucumber you can turn off the Rails instance:
NOTE: The default port for this server is 3001. You can change this in features/step_definitions/common_celerity.rb
rake culerity:rails:stop
### RVM
If you are using RVM there‘s an [integration guide for culerity](rvm.beginrescueend.com/integration/culerity/) on their website.
## How does it work
While Celerity is based on Java and requires JRuby to run, with Culerity you can still run your tests in your own Ruby Environment. When you run your features a separate JRuby process for Celerity is spawned and all Celerity Commands are redirected to this other process.
## Troubleshooting
I get a broken pipe error:
I get _Connection Refused_ errors
My application can‘t find the data I create in my steps
My database is not cleared automatically between scenarios
Before do [User, .... all your models].each do |model| model.delete_all end end
## Links to Celerity documentation
## Links
## Contact
Written 2009 by Alexander Lang, contact alex[at]upstream-berlin.com or <github.com/langalex>, released under the MIT license