Skip to content

vtimonov/cucumberjs-parallel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Run cucumber features or scenarios in parallel with limited threads count

Resources

License

Stars

Watchers

Forks

Packages

No packages published