Package detail

cucumberjs-parallel

vtimonov1.2kMIT2.0.2

Run cucumber features or scenarios in parallel with limited threads count

cucumber, parallel, concurrent, cucumber-js

readme

CucumberJS Parallel

Run Cucumber Features or Scenarios in Parallel with limited threads count

Build Status npm License

Install

Cucumber 6

npm install cucumberjs-parallel@1.2.6 --save-dev

Cucumber 7

npm install cucumberjs-parallel --save-dev

Notes:

  • The versions 1.x.x were tested with cucumberjs v6.0.5 and Node v12.
  • The versions 2.x.x were tested with cucumberjs v7.3.1 and Node v14.16.0.
  • The module requires node v.^10, if you are using v10, please use --experimental-worker flag. Details

How to use

Commands

  • --parallel-type - either features or scenarios
  • -w, --workers - number of threads. if the value set to 0, the count of threads will equal the number of tasks (features or scenarios)

To run Scenarios in Parallel, pass process.argv --parallel-type scenarios

$ node_modules/cucumberjs-parallel/bin/cucumberjs-parallel /path/to/features -r /path/to/step-defs --parallel-type scenarios -w 4 --format json:path/to/file.json

It runs Features in parallel by default, or by passing --parallel-type features process argument

$ node_modules/cucumberjs-parallel/bin/cucumberjs-parallel /path/to/features -r /path/to/step-defs -w 0 --format json:path/to/file.json

Run

Supports all the arguments as cucumber-js, however please be careful with --format option, the module supports aggregation of json. the rest of formats might not be working.

$ node_modules/cucumberjs-parallel/bin/cucumberjs-parallel /path/to/features -r /path/to/step-defs -w 2 -f json:path/to/file.json --tags=@myTag

Format

Module supports JSON format. You can save the JSON output to file by passing the cucumber-format as,

-f json:path/to/file.json

Allure Report

CucumberJS 7 and higher doesn't work with AllureJS last version (2.0.0-beta.14)

Run Features or Scenarios in Parallel and generate Allure Reports with allure-cucumberjs

Create Reporter file:

const { CucumberJSAllureFormatter } = require("allure-cucumberjs");
const { AllureRuntime } = require("allure-cucumberjs");

function Reporter(options) {
  return new CucumberJSAllureFormatter(
    options,
    new AllureRuntime({ resultsDir: "./allure-results" }),
    {}
  );
}
Reporter.prototype = Object.create(CucumberJSAllureFormatter.prototype);
Reporter.prototype.constructor = Reporter;

exports.default = Reporter;

Then pass with reporter as a Cucumber formatter: --format ./path/to/Reporter.js

e.g.

node_modules/cucumberjs-parallel/bin/cucumberjs-parallel test/features --parallel-type features -w 2 -f allure/Reporter.js

Changelog

changelog

Inspired by

changelog

CHANGELOG

2.0.2 (06-21-2022)

  • fix ignorance of failed tests in reports

2.0.1 (1-1-2022)

  • update CRLF to LF in cucumberjs-parallel as it causes issues on unix systems.

2.0.0 (11-11-2021)

  • moved to cucumber 7+

1.2.5 (11-03-2020)

  • switched to new logger
  • handle a case when a feature content missed
  • fix an issue with triggering background as a task

1.2.1 (10-15-2020)

1.0.2 (10-08-2020)

  • Initial version