Cucumber is a tool that executes plain-text functional descriptions as automated tests. The language that Cucumber understands is called Gherkin.
While Cucumber can be thought of as a “testing” tool, the intent of the tool is to support BDD. This means that the “tests” (plain text feature descriptions with scenarios) are typically written before anything else and verified by business analysts, domain experts, etc. non technical stakeholders. The production code is then written outside-in, to make the stories pass.
Cucumber itself is written in Ruby, but it can be used to “test” code written in Ruby or other languages including but not limited to Java, C# and Python. Cucumber only requires minimal use of Ruby programming and Ruby is easy, so don’t be afraid even if the code you’re developing in is not Ruby.
Cucumber lets software development teams describe how software should behave in plain text. The text is written in a business-readable domain-specific language and serves as documentation, automated tests and development-aid - all rolled into one format.
Cucumber works with Ruby, Java, .NET, Flex or web applications written in any language. It has been translated to over 40 spoken languages.
Cucumber is Aslak Hellesøy’s rewrite of RSpec’s “Story runner”, which was originally written by Dan North. (Which again was a rewrite of his first implementation - RBehave. RBehave was his Ruby port of JBehave). Early versions of the RSpec “Story Runner” required that stories be written in Ruby. Seeing how much this sucked David Chelimsky added plain text support with contributions from half a dozen other people.
- Cucumber and other languages (Cucumber’s example directory has examples for some of these)
- Java Virtual Machine: JRuby and Java
- .NET (Microsoft.NET and Mono): IronRuby and .NET, IronRuby and Mono
- Adobe Flex: FunFX, Melomel
- Python
- Erlang: cucumberl
- Web apps in any language: Drive a full or headless browser using one of these
- Webrat – Ruby acceptance testing for web applications
- Capybara – Acceptance testing framework with a webrat-like API and support for multiple backends, including RackTest, Selenium, Celerity and Culerity
- Steam – Drives a fast headless browser with Javascript support. Support for the normal webrat step definitions, see Setting up Steam
- PHP
- WebDriver – Drives IE, Firefox, Chrome
- Watir – Drives IE (Windows only)
- Watir WebDriver – Drives Firefox, Chrome, IE & Opera – optionally headless – Linux/Mac/Windows: “the most elegant way to use webdriver with ruby”
- Celerity – Drives a fast headless browser with Javascript support. Examples here
- Culerity – For when you can’t run your app under jRuby
- Selenium – Runs any browser (any OS), see: Setting up Selenium
- Mechanize – Runs a headless browser (any OS)
- Application frameworks
- Ruby on Rails
- Merb
- Sinatra
- Custom Formatters
- Console Colours
- Hooks
- Tags
- Profiles
- Running Features
- Using Rake
- Using MiniTest
- Using RCov with Cucumber and Rails
- Using Test::Unit
- Fixtures
- Continuous Integration
- Autotest Integration
- Related tools that work with Cuke
- Maven cucumber-maven-plugin
- Spork and --drb to decrease Cucumber’s startup time
- Testjour to distribute your features between several machines and run them in parallel
- Pimp my Cuke
- Integrate
More information inside.
Submit tool info at: http://www.qatestingtools.com/submit-tool