Run cucumber features or scenarios in parallel with limited threads count
npm install cucumberjs-parallelCucumberJS Parallel
=================
Run Cucumber Features or Scenarios in Parallel with limited threads count
[![Build Status][travis-shield]][travis-link] [![npm][npm-shield]][npm-link] [![License][license-shield]][license-link]
bash
npm install cucumberjs-parallel@1.2.6 --save-dev
`Cucumber 7
` bash
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][3]How to use
$3
*
--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
` bash
$ 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
` bash
$ 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][1], however please be careful with
--format option, the module supports aggregation of json. the rest of formats might not be working. ` bash
$ 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,
`bash
-f json:path/to/file.json
`$3
> 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][allure-cucumberjs]
Create Reporter file:
`javascript
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.jse.g.
`
node_modules/cucumberjs-parallel/bin/cucumberjs-parallel test/features --parallel-type features -w 2 -f allure/Reporter.js
``[changelog][changelog]
* [cucumber-parallel][2]
* [cucumberjs][1]
[1]: https://github.com/cucumber/cucumber-js "CucumberJs"
[2]: https://github.com/gkushang/cucumber-parallel "Cucumber Parallel"
[3]: https://nodejs.org/docs/latest-v10.x/api/worker_threads.html#
[allure-cucumberjs]: https://github.com/allure-framework/allure-js/tree/master/packages/allure-cucumberjs
[changelog]: https://github.com/vtimonov/cucumberjs-parallel/blob/master/CHANGELOG.md
[travis-shield]: https://api.travis-ci.com/vtimonov/cucumberjs-parallel.svg?branch=master
[travis-link]: https://app.travis-ci.com/github/vtimonov/cucumberjs-parallel
[npm-shield]: https://img.shields.io/npm/v/cucumberjs-parallel.svg
[npm-link]: https://www.npmjs.com/package/cucumberjs-parallel
[depedency-shield]: https://david-dm.org/vtimonov/cucumberjs-parallel/status.svg
[depedency-link]: https://david-dm.org/vtimonov/cucumberjs-parallel
[license-shield]: https://img.shields.io/badge/License-MIT-green.svg
[license-link]: https://github.com/vtimonov/cucumberjs-parallel/blob/master/LICENSE