external@serenity-js/cucumber
Serenity/JS is an innovative open-source framework designed to make acceptance and regression testing of complex software systems faster, more collaborative and easier to scale.
⭐️ Get started with Serenity/JS!
- Serenity/JS web testing tutorial
- Serenity/JS Handbook and Getting Started guides
- API documentation
- Serenity/JS Project Templates on GitHub
👋 Join the Serenity/JS Community!
- Meet other Serenity/JS developers and maintainers on the Serenity/JS Community chat channel,
- Find answers to your Serenity/JS questions on the Serenity/JS Forum,
- Learn how to contribute to Serenity/JS,
- Support the project and gain access to Serenity/JS Playbooks by becoming a Serenity/JS GitHub Sponsor!
Serenity/JS Cucumber
@serenity-js/cucumber
contains a set of adapters you register with Cucumber CLI runners to enable integration and reporting between Cucumber.js and Serenity/JS.
Please note: To use Cucumber and Serenity/JS to execute web-based acceptance tests, you should register Serenity/JS Cucumber adapter using Protractor configuration file.
Learn more about integrating Serenity/JS Cucumber:
- with Protractor and Cucumber.js,
- with Cucumber.js.
Installation
To install this module, run:
npm install --save-dev @serenity-js/cucumber @serenity-js/core
This module reports test scenarios executed by any version of Cucumber.js, from 0.x to 9.x, which you need to install separately.
To install Cucumber 9.x, run:
npm install --save-dev @cucumber/cucumber
To install Cucumber 6.x or earlier, run:
npm install --save-dev cucumber
To learn more about Serenity/JS and how to use it on your project, follow the Serenity/JS Getting Started guide.
Command line usage
Cucumber 7.x and newer
cucumber-js --format @serenity-js/cucumber \
--require ./features/support/setup.js \
--require ./features/step_definitions/sample.steps.js
'--format-options', `{ "specDirectory": "${ path.resolve(__dirname, '../../cucumber-specs/features') }" }`,
Cucumber 3.x to 6.x
cucumber-js --format node_modules/@serenity-js/cucumber \
--require ./features/support/setup.js \
--require ./features/step_definitions/sample.steps.js
Cucumber 0.x to 2.x
cucumber-js --require=node_modules/@serenity-js/cucumber/lib/index.js \
--require ./features/support/setup.js \
--require ./features/step_definitions/sample.steps.js
Configuration
When used with a configuration file written in JavaScript:
// features/support/setup.js
const { configure } = require('@serenity-js/core')
configure({
// ... configure Serenity/JS
})
When used with a configuration file written in TypeScript:
// features/support/setup.ts
import { configure } from '@serenity-js/core'
configure({
// ... configure Serenity/JS
})
Integration
This module can be integrated with:
@serenity-js/serenity-bdd
to produce HTML reports and living documentation,@serenity-js/console-reporter
to print test execution reports to your computer terminal,@serenity-js/protractor
to implement Cucumber scenarios interacting with Web applications.
Learn more about Serenity/JS modular architecture.
📣 Stay up to date
New features, tutorials, and demos are coming soon! Follow Serenity/JS on LinkedIn, subscribe to Serenity/JS channel on YouTube and join the Serenity/JS Community Chat to stay up to date! Please also make sure to star ⭐️ Serenity/JS on GitHub to help others discover the framework!
💛 Support Serenity/JS
If you appreciate all the effort that goes into making sophisticated tools easy to work with, please support our work and become a Serenity/JS GitHub Sponsor today!
Registers a Cucumber reporter that emits Serenity/JS domain events and informs Serenity/JS when test scenarios and Cucumber steps start, finish, and with what result.