cucumberjs-parallel
v2.0.2
Published
Run cucumber features or scenarios in parallel with limited threads count
Downloads
913
Maintainers
Readme
CucumberJS Parallel
Run Cucumber Features or Scenarios in Parallel with limited threads count
Install
Cucumber 6
npm install [email protected] --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
- eitherfeatures
orscenarios
-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