cucumberjs-parallel
v2.0.2
Published
Run cucumber features or scenarios in parallel with limited threads count
Maintainers
Readme
CucumberJS Parallel
Run Cucumber Features or Scenarios in Parallel with limited threads count
Install
Cucumber 6
npm install [email protected] --save-devCucumber 7
npm install cucumberjs-parallel --save-devNotes:
- 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-workerflag. Details
How to use
Commands
--parallel-type- eitherfeaturesorscenarios-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.jsonIt 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.jsonRun
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.jsonAllure 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