Need help with cucumber-ruby?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

5.1K Stars 1.1K Forks MIT License 8.1K Commits 18 Opened issues


Cucumber for Ruby

Services available


Need anything else?

Contributors list

Cucumber Open - Supported by Smartbear


OpenCollective OpenCollective pull requests issues Test cucumber Code Climate Coverage Status

Cucumber is a tool for running automated tests written in plain language. Because they're written in plain language, they can be read by anyone on your team. Because they can be read by anyone, you can use them to help improve communication, collaboration and trust on your team.

Cucumber Gherkin Example

This is the Ruby implementation of Cucumber. Cucumber is also available for JavaScript, Java, and a lot of other languages. You can find a list of implementations here:

See for info on contributing to Cucumber (issues, PRs, etc.).

Everyone interacting in this codebase and issue tracker is expected to follow the Cucumber code of conduct.


Cucumber for Ruby is a Ruby gem. Install it as you would install any gem: add

to your Gemfile:
gem 'cucumber'

then install it:

$ bundle

or install the gem directly:

$ gem install cucumber

Later in this document, bundler is considered being used so all commands are using

bundle exec
. If this is not the case for you, execute
directly, without
bundle exec

Supported platforms

  • Ruby 3.0
  • Ruby 2.7
  • Ruby 2.6
  • Ruby 2.5
  • Ruby 2.4
  • Ruby 2.3
  • JRuby 9.2 (with some limitations)

JRuby 9.3 is not supported yet due to a known issue. More info can be found in the PR#1571.

Ruby on Rails

Using Ruby on Rails? You can use cucumber-rails to bring Cucumber into your Rails project.



If you need to, initialize your

directory with
$ bundle exec cucumber --init

This will create the following directories and files if they do not exist already:

├── step_definitions
└── support
    └── env.rb

Create your specification

Create a file named

in the
directory with:
# features/rule.feature

Feature: Rule Sample

Rule: This is a rule

Example: A passing example
  Given this will pass
  When I do an action
  Then some results should be there

Example: A failing example
  Given this will fail
  When I do an action
  Then some results should be there

Automate your specification

And a file named

# features/step_definitions/steps.rb

Given("this will pass") do @this_will_pass = true end

Given("this will fail") do @this_will_pass = false end

When("I do an action") do end

Then("some results should be there") do expect(@this_will_pass) end

Run Cucumber

$ bundle exec cucumber

To execute a single feature file:

$ bundle exec cucumber features/rule.feature

To execute a single example, indicates the line of the name of the example:

$ bundle exec cucumber features/rule.feature:7

To summarize the results on the standard output, and writte a HTML report on disk:

$ bundle exec cucumber --format summary --format html --out report.html

For more command line options

$ bundle exec cucumber --help

You can also find documentation on the command line possibilities in features/docs/cli.

Documentation and support

  • Getting started, writing features, step definitions, and more:
  • Ruby API Documentation:
  • Community support forum:
  • Slack: register for an account then head over to #intro


Copyright (c) Cucumber Ltd. and Contributors. See LICENSE for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.