standalone-cucumber icon indicating copy to clipboard operation
standalone-cucumber copied to clipboard

A sample cucumber test suite for testing non Ruby web applications

trafficstars

= Standalone Cucumber Test Suite

== Introduction

Sometimes you inherit a non Rails or non Rack based web app such as PHP, Perl, Java / J2EE, etc. I like using cucumber for functional testing so I put together this project structure to use as a starting point for testing non-Ruby web-based applications.

I've included a simple search.feature example that uses Google. To switch to use your own development or staging server, adjust the URL in features/support/env.rb. This example project setup uses Capybara with Poltergeist but you can easily switch this to use Webdriver (Selenium) or Culerity or Webrat by editing features/support/env.rb.

Pull requests with updates/enhancements/bug fixes are always welcome!

== Project Layout

  • features/*.feature : cucumber features
  • features/step_definitions/web_steps.rb : generic steps that apply to all features
  • features/step_definitions/[feature]_steps.rb : steps specific to an individual feature file
  • features/support/env.rb : configures the driver and the hostname to use

== Prerequisites

  • Ruby http://www.ruby-lang.org/en/downloads/
  • Ruby Gems http://rubygems.org/
  • Bundler: sudo gem install bundler rake
  • PhantomJS: {install phantomjs}[https://github.com/teampoltergeist/poltergeist#installing-phantomjs]

== Configuration

  • sudo bundle install

== Running Features

  • To run all features: rake
  • To run a specific feature: cucumber features/search.feature

== Debugging

  • To debug a specific step call save_and_open_page within the step

== Additional Documentation

  • http://cukes.info (for general cucumber information)
  • http://github.com/jnicklas/capybara (for actions such as click_link, click_button, etc...)

== Contributors

  • {Cucumber mailing list for the project structure}[http://groups.google.com/group/cukes/browse_thread/thread/297163800eaf2968?pli=1]
  • {Todd Huss}[http://gabrito.com]
  • {zarchrome}[https://github.com/zarchrome]