
Security News
GitHub Actions Pricing Whiplash: Self-Hosted Actions Billing Change Postponed
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.
@serenity-js/cucumber
Advanced tools
Serenity/JS test runner adapter for seamless integration with any version of Cucumber.js, facilitating BDD-style test automation and leveraging Serenity/JS reporting capabilities
@serenity-js/cucumber integrates Serenity/JS with Cucumber,
enabling you to run automated, plain-language scenarios with rich reporting and powerful Screenplay-based abstractions.
npm install --save-dev @serenity-js/cucumber @serenity-js/core
See the Serenity/JS Installation Guide.
import { actorCalled, actorInTheSpotlight } from '@serenity-js/core';
import { Given, When, Then } from '@cucumber/cucumber';
import { Ensure, equals } from '@serenity-js/assertions';
Given('{word} has {int} apples', async (actorName: string, count: number) => {
// Create or retrieve the actor by name
await actorCalled(actorName).attemptsTo(
// Add tasks or interactions
);
});
When('she adds {int} apples', async (count: number) => {
// Retrieve the most recently used actor
await actorInTheSpotlight().attemptsTo(
// Add tasks or interactions
)
});
Then('she has {int} apples', async (expectedCount: number) => {
await actorInTheSpotlight().attemptsTo(
Ensure.that(/* actual count */, equals(expectedCount))
)
})
Explore practical examples and in-depth explanations in the Serenity/JS Handbook.
When using Serenity/JS with WebdriverIO, follow the official Serenity/JS WebdriverIO + Cucumber integration guide.
To use Serenity/JS with Cucumber and Playwright, follow the steps below, or use one of the available Serenity/JS Project Templates.
Use the cucumber.js configuration file
to set up Cucumber to use Serenity/JS as the "formatter" and load extra *.config.ts files.
// cucumber.js
module.exports = {
default: {
// Use TypeScript in-memory transpiler, ts-node
// requires `npm install --save-dev ts-node`
requireModule: ['ts-node/register'],
// Use Serenity/JS Cucumber adapter
format: ['@serenity-js/cucumber'],
// Configure the adapter
formatOptions: {
specDirectory: 'features'
},
require: [
// Load configuration files
'./features/**/*.config.ts',
// Load step definition libraries
'./features/**/*.steps.ts'
],
}
}
To configure Serenity/JS, create a serenity.config.ts file with the following content:
// features/support/serenity.config.ts
import { configure, Cast } from '@serenity-js/core'
import { BeforeAll } from '@cucumber/cucumber'
BeforeAll(async () => {
// ... start any services or browsers here
// Configure Serenity/JS
configure({
actors: Cast.where(actor => {
return actor.whoCan(
// ... add abilities here
)
}),
crew: [
[ '@serenity-js/console-reporter', { theme: 'auto' } ],
// ... add other crew members here
]
})
})
See the Serenity/JS configuration options and reporting guide.
Contributions of all kinds are welcome! Get started with the Contributing Guide.
If you enjoy using Serenity/JS, make sure to star ⭐️ Serenity/JS on GitHub to help others discover the framework!
The Serenity/JS code base is licensed under the Apache-2.0 license, while its documentation and the Serenity/JS Handbook are licensed under the Creative Commons BY-NC-SA 4.0 International.
See the Serenity/JS License.
Support ongoing development through GitHub Sponsors. Sponsors gain access to Serenity/JS Playbooks and priority help in the Discussions Forum.
For corporate sponsorship or commercial support, please contact Jan Molak.
FAQs
Serenity/JS test runner adapter for seamless integration with any version of Cucumber.js, facilitating BDD-style test automation and leveraging Serenity/JS reporting capabilities
We found that @serenity-js/cucumber demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.