Serenity/JS

Serenity/JS is a Node.js framework designed to make acceptance and regression testing of modern full-stack applications faster, more collaborative and easier to scale.

Visit serenity-js.org for the latest tutorials and API docs, and follow @SerenityJS and @JanMolak on Twitter for project updates.

Learning Serenity/JS

To learn more about Serenity/JS, check out the video below, read the tutorial, review the examples, and create your own test suite with Serenity/JS template projects.

If you have any questions, join us on Serenity/JS Community Chat.

Full-Stack Acceptance Testing with Serenity/JS and the Screenplay Pattern

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:

Installation

To install this module, run:

npm install --save-dev @serenity-js/{cucumber,core}

This module reports test scenarios executed by any version of Cucumber.js, from 0.x to 7.x, which you need to install separately.

To install Cucumber 7.x, run:

npm install --save-dev @cucumber/cucumber 

To install Cucumber 6.x or earlier, run:

npm install --save-dev cucumber 

Command line usage

Cucumber 7.x

cucumber-js --format @serenity-js/cucumber \
    --require ./features/support/setup.js \
    --require ./features/step_definitions/sample.steps.js 

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:

Learn more about Serenity/JS Modules.