{"id":13440346,"url":"https://github.com/cucumber/cucumber-ruby","last_synced_at":"2025-05-12T05:29:11.074Z","repository":{"id":392848,"uuid":"10664","full_name":"cucumber/cucumber-ruby","owner":"cucumber","description":"Cucumber for Ruby. It's amazing!","archived":false,"fork":false,"pushed_at":"2025-04-15T13:37:17.000Z","size":16850,"stargazers_count":5189,"open_issues_count":17,"forks_count":1116,"subscribers_count":235,"default_branch":"main","last_synced_at":"2025-05-08T01:33:54.761Z","etag":null,"topics":["cucumber","polyglot-release","ruby","tidelift"],"latest_commit_sha":null,"homepage":"https://cucumber.io","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cucumber.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"cucumber","github":"cucumber"}},"created_at":"2008-04-17T18:19:13.000Z","updated_at":"2025-05-01T18:36:57.000Z","dependencies_parsed_at":"2023-09-26T10:02:31.728Z","dependency_job_id":"87dcc73c-e63c-455c-8749-c0ad52eebe4b","html_url":"https://github.com/cucumber/cucumber-ruby","commit_stats":null,"previous_names":[],"tags_count":274,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cucumber","download_url":"https://codeload.github.com/cucumber/cucumber-ruby/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253065381,"owners_count":21848246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cucumber","polyglot-release","ruby","tidelift"],"created_at":"2024-07-31T03:01:21.912Z","updated_at":"2025-05-08T17:58:14.436Z","avatar_url":"https://github.com/cucumber.png","language":"Ruby","readme":"\u003cimg src=\"docs/img/logo.svg\" alt=\"\" width=\"75\" /\u003e\n\n# Cucumber\n\n[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://vshymanskyy.github.io/StandWithUkraine)\n[![OpenCollective](https://opencollective.com/cucumber/backers/badge.svg)](https://opencollective.com/cucumber)\n[![OpenCollective](https://opencollective.com/cucumber/sponsors/badge.svg)](https://opencollective.com/cucumber)\n[![Test cucumber](https://github.com/cucumber/cucumber-ruby/actions/workflows/test.yaml/badge.svg)](https://github.com/cucumber/cucumber-ruby/actions/workflows/test.yaml)\n[![Code Climate](https://codeclimate.com/github/cucumber/cucumber-ruby.svg)](https://codeclimate.com/github/cucumber/cucumber-ruby)\n[![Coverage Status](https://coveralls.io/repos/cucumber/cucumber-ruby/badge.svg?branch=main)](https://coveralls.io/r/cucumber/cucumber-ruby?branch=main)\n\nCucumber is a tool for running automated tests written in plain language. Because they're\nwritten in plain language, they can be read by anyone on your team. Because they can be\nread by anyone, you can use them to help improve communication, collaboration and trust on\nyour team.\n\n\u003cimg src=\"docs/img/gherkin-example.png\" alt=\"Cucumber Gherkin Example\" width=\"728\" /\u003e\n\nThis is the Ruby implementation of Cucumber. Cucumber is also available for [JavaScript](https://github.com/cucumber/cucumber-js),\n[Java](https://github.com/cucumber/cucumber-jvm), and a lot of other languages. You can find a list of implementations here: https://cucumber.io/docs/installation/.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for info on contributing to Cucumber (issues, PRs, etc.).\n\nEveryone interacting in this codebase and issue tracker is expected to follow the\nCucumber [code of conduct](https://cucumber.io/conduct).\n\n## Installation\n\nCucumber for Ruby is a Ruby gem. Install it as you would install any gem: add\n`cucumber` to your Gemfile:\n\n    gem 'cucumber'\n\nthen install it:\n\n    $ bundle\n\nor install the gem directly:\n\n    $ gem install cucumber\n\nLater in this document, bundler is considered being used so all commands are using\n`bundle exec`. If this is not the case for you, execute `cucumber` directly, without\n`bundle exec`.\n\n### Supported platforms\n\n- Ruby 3.2\n- Ruby 3.1\n- Ruby 3.0\n- Ruby 2.7\n- TruffleRuby 22.0.0+\n- JRuby 9.4+ (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/main/docs/jruby-limitations.md))\n\n### Ruby on Rails\n\nUsing Ruby on Rails? You can use [cucumber-rails](https://github.com/cucumber/cucumber-rails) to bring Cucumber into your Rails project.\n\n## Usage\n\n### Initialization\n\nIf you need to, initialize your `features` directory with\n\n    $ bundle exec cucumber --init\n\nThis will create the following directories and files if they do not exist already:\n\n    features\n    ├── step_definitions\n    └── support\n        └── env.rb\n\n### Create your specification\n\nCreate a file named `rule.feature` in the `features` directory with:\n\n```gherkin\n# features/rule.feature\n\nFeature: Rule Sample\n\n  Rule: This is a rule\n\n    Example: A passing example\n      Given this will pass\n      When I do an action\n      Then some results should be there\n\n    Example: A failing example\n      Given this will fail\n      When I do an action\n      Then some results should be there\n\n```\n\n### Automate your specification\n\nAnd a file named `steps.rb` in `features/step_definitions` with:\n\n```ruby\n# features/step_definitions/steps.rb\n\nGiven('this will pass') do\n  @this_will_pass = true\nend\n\nGiven('this will fail') do\n  @this_will_pass = false\nend\n\nWhen('I do an action') do\n  :no_op\nend\n\nThen(\"some results should be there\") do\n  expect(@this_will_pass).to be true\nend\n```\n\n### Run Cucumber\n\n    $ bundle exec cucumber\n\nTo execute a single feature file:\n\n    $ bundle exec cucumber features/rule.feature\n\nTo execute a single example, indicates the line of the name of the example:\n\n    $ bundle exec cucumber features/rule.feature:5\n\nTo summarize the results on the standard output, and generate a HTML report on disk:\n\n    $ bundle exec cucumber --format summary --format html --out report.html\n\nFor more command line options\n\n    $ bundle exec cucumber --help\n\nYou can also find documentation on the command line possibilities in [features/docs/cli](features/docs/cli).\n\n## Documentation and support\n\n- Getting started, writing features, step definitions, and more: https://cucumber.io/docs\n- Ruby API Documentation: http://www.rubydoc.info/github/cucumber/cucumber-ruby/\n- Community support forum: https://github.com/orgs/cucumber/discussions\n- Discord: [register for an account](https://cucumber.io/docs/community/get-in-touch#discord)\n\n## Copyright\n\nCopyright (c) Cucumber Ltd. and Contributors. See LICENSE for details.\n","funding_links":["https://opencollective.com/cucumber","https://github.com/sponsors/cucumber"],"categories":["Ruby","By Technology"],"sub_categories":["Ruby"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumber%2Fcucumber-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcucumber%2Fcucumber-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumber%2Fcucumber-ruby/lists"}