Gherkin is the language that Cucumber uses to define test cases. It is designed to be non-technical and human readable, and collectively describes use cases relating to a software system. The purpose behind Gherkin's syntax is to promote behavior-driven development practices across an entire development team, including business analysts and managers. It seeks to enforce firm, unambiguous requirements starting in the initial phases of requirements definition by business management and in other stages of the development lifecycle.
In addition to providing a script for automated testing, Gherkin's natural language syntax is designed to provide simple documentation of the code under test. Gherkin currently supports keywords in dozens of languages.
All Gherkin files have the .feature file extension. They contain a single Feature definition for the system under test and are an executable test script.
Cucumber comes with a built-in command line interface that covers a comprehensive list of instructions. Like most command line tools, cucumber provides the --help option that provides a summary of arguments the command accepts.
$ cucumber --help
-r, --require LIBRARY|DIR Require files before executing the features.
--i18n LANG List keywords for in a particular language.
Run with "--i18n help" to see all languages.
-f, --format FORMAT How to format features (Default: pretty).
-o, --out [FILE|DIR] Write output to a file/directory instead of
...
Cucumber command line can be used to quickly run defined tests. It also supports running a subset of scenarios by filtering tags.
$ cucumber --tags @tag-name
The above command helps in executing only those scenarios that have the specified @tag-name. Arguments can be provided as a logical OR or AND operation of tags. Apart from tags, scenarios can be filtered on scenario names.
$ cucumber --name logout
The above command will run only those scenarios that contain the word 'logout'.
It is also useful to be able to know what went wrong when a test fails. Cucumber makes it easy to catch bugs in the code with the --backtrace option.
"The Pragmatic Bookshelf | The Cucumber Book". Pragprog.com. Archived from the original on 2012-01-21. Retrieved 2012-01-24. https://web.archive.org/web/20120121022646/http://pragprog.com/book/hwcuc/the-cucumber-book
Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 February 2015). The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com. Retrieved 2019-04-28. https://pragprog.com/book/srjcuc/the-cucumber-for-java-book
"What is Cucumber?". cucumber. Retrieved 2019-06-08. https://cucumber.io/docs/guides/overview/
Aslak Hellesøy. "The world's most misunderstood collaboration tool". cucumber. https://cucumber.io/blog/the-worlds-most-misunderstood-collaboration-tool/
Nagy, Gáspár; Rose, Seb (2017-03-07). The BDD Books - Discovery. Leanpub. ISBN 978-1983591259.{{cite book}}: CS1 maint: date and year (link) 978-1983591259
Rose, Seb; Nagy, Gáspár (2021-04-27). The BDD Books – Formulation. Leanpub. ISBN 979-8723395015.{{cite book}}: CS1 maint: date and year (link) 979-8723395015
Fox, Armando; Patterson, David (2016). Engineering Software as a Service. Strawberry Canyon. pp. 218–255. ISBN 978-0-9848812-4-6. 978-0-9848812-4-6
"The Pragmatic Bookshelf | The Cucumber Book". Pragprog.com. Archived from the original on 2012-01-21. Retrieved 2012-01-24. https://web.archive.org/web/20120121022646/http://pragprog.com/book/hwcuc/the-cucumber-book
Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 February 2015). The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com. Retrieved 2019-04-28. https://pragprog.com/book/srjcuc/the-cucumber-for-java-book
"Automated testing with Selenium and Cucumber". www.ibm.com. 2013-08-06. Retrieved 2017-02-09. https://www.ibm.com/developerworks/library/a-automating-ria/
Soeken, Mathias; Wille, Robert; Drechsler, Rolf (2012-05-29). Furia, Carlo A.; Nanz, Sebastian (eds.). Objects, Models, Components, Patterns. Lecture Notes in Computer Science. Springer Berlin Heidelberg. pp. 269–287. doi:10.1007/978-3-642-30561-0_19. ISBN 9783642305603. 9783642305603
"The Pragmatic Bookshelf | The Cucumber Book". Pragprog.com. Archived from the original on 2012-01-21. Retrieved 2012-01-24. https://web.archive.org/web/20120121022646/http://pragprog.com/book/hwcuc/the-cucumber-book
"The Pragmatic Bookshelf | The RSpec Book". Pragprog.com. 2010-12-02. Archived from the original on 2012-01-21. Retrieved 2012-01-24. https://web.archive.org/web/20120121003856/http://pragprog.com/book/achbd/the-rspec-book
Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 February 2015). The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com. Retrieved 2019-04-28. https://pragprog.com/book/srjcuc/the-cucumber-for-java-book
"Cucumber-jvm". cucumber. Retrieved 2018-03-08. https://github.com/cucumber/cucumber-jvm
Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 February 2015). The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com. Retrieved 2019-04-28. https://pragprog.com/book/srjcuc/the-cucumber-for-java-book
"Cucumber-js". cucumber. Retrieved 2018-03-08. https://github.com/cucumber/cucumber-js
Naidele Manjunath; Olivier de Meulder (2019-02-01). "No Code? No Problem — Writing Tests in Plain English". Times Open. Retrieved 2019-04-29. https://open.nytimes.com/no-code-no-problem-writing-tests-in-plain-english-537827eaaa6e
"Binding Business Requirements to .NET Code". SpecFlow. Retrieved 2019-04-29. https://specflow.org/
"SpecFlow". GitHub. Retrieved 2019-04-29. https://github.com/techtalk/SpecFlow
Richard Lawrence; Paul Rayner (2018). Behavior-Driven Development with Cucumber. Addison Wesley.
Nagy, Gáspár (8 February 2024). "From SpecFlow to Reqnroll: Why and How". reqnroll.net. Reqnroll. Retrieved 18 April 2024. https://reqnroll.net/news/2024/02/from-specflow-to-reqnroll-why-and-how/
"The Pragmatic Bookshelf | The Cucumber Book". Pragprog.com. Archived from the original on 2012-01-21. Retrieved 2012-01-24. https://web.archive.org/web/20120121022646/http://pragprog.com/book/hwcuc/the-cucumber-book
Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 February 2015). The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com. Retrieved 2019-04-28. https://pragprog.com/book/srjcuc/the-cucumber-for-java-book
"cucumber/gherkin". GitHub. Retrieved 2017-02-09. https://github.com/cucumber/cucumber/tree/master/gherkin
"Gherkin Syntax". cucumber. Retrieved 2019-07-09. https://cucumber.io/docs/gherkin/
"Gherkin Syntax". cucumber. Retrieved 2019-07-09. https://cucumber.io/docs/gherkin/
"Gherkin Syntax". cucumber. Retrieved 2019-07-09. https://cucumber.io/docs/gherkin/
"Gherkin Supported Languages". Gherkin. cucumber/cucumber: Cucumber monorepo - building blocks for Cucumber in various languages. Retrieved 2021-03-21 – via GitHub. https://github.com/cucumber/gherkin/blob/main/gherkin-languages.json
"The Pragmatic Bookshelf | The Cucumber Book". Pragprog.com. Archived from the original on 2012-01-21. Retrieved 2012-01-24. https://web.archive.org/web/20120121022646/http://pragprog.com/book/hwcuc/the-cucumber-book
Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 February 2015). The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com. Retrieved 2019-04-28. https://pragprog.com/book/srjcuc/the-cucumber-for-java-book
"Gherkin Syntax". cucumber. Retrieved 2019-07-09. https://cucumber.io/docs/gherkin/
"Gherkin Syntax". cucumber. Retrieved 2019-07-09. https://cucumber.io/docs/gherkin/
"Reference". cucumber. Archived from the original on 2015-10-25. Retrieved 2016-01-17. https://web.archive.org/web/20151025214933/https://cucumber.io/docs/reference
"Reference". cucumber. Archived from the original on 2015-10-25. Retrieved 2016-01-17. https://web.archive.org/web/20151025214933/https://cucumber.io/docs/reference
"Gherkin Reference". cucumber. Archived from the original on 2024-01-13. Retrieved 2024-02-11. https://web.archive.org/web/20240113160832/https://cucumber.io/docs/gherkin/reference/
Wynne, Matt; Hellesoy, Aslak. "The Cucumber Book". SafariBooksOnline. Retrieved 22 January 2016. https://www.safaribooksonline.com/library/view/the-cucumber-book/9781941222911/f_0090.html
Wynne, Matt; Hellesoy, Aslak. "The Cucumber Book". SafariBooksOnline. Retrieved 22 January 2016. https://www.safaribooksonline.com/library/view/the-cucumber-book/9781941222911/f_0090.html
Wynne, Matt; Hellesoy, Aslak. "The Cucumber Book". SafariBooksOnline. Retrieved 22 January 2016. https://www.safaribooksonline.com/library/view/the-cucumber-book/9781941222911/f_0090.html
Wynne, Matt; Hellesoy, Aslak. "The Cucumber Book". SafariBooksOnline. Retrieved 22 January 2016. https://www.safaribooksonline.com/library/view/the-cucumber-book/9781941222911/f_0090.html