Allure 2 reporter for Cucumber.JS framework Compatible with Cucumber.JS 3+ and Allure 2+
NPM link: cucumberjs-allure2-reporter
Create Reporter file:
export default class Reporter extends CucumberJSAllureFormatter {
constructor(options) {
super(
options,
new AllureRuntime({ resultsDir: "./out/allure-results" }),
{
labels: {
issue: [/@bug_(.*)/],
epic: [/@feature:(.*)/]
}
}
);
}
}
This class MUST:
- Be a default export
- Extend
CucumberJSAllureFormatter
- Take 1 argument in constructor and pass it to
super()
as first argument - Second
super()
argument isAllureRuntime
instance - Third is a config, currently allows to map tags to Allure labels
Then pass with reporter as a Cucumber formatter:
node cucumber.js --format ./path/to/Reporter.js
If you want to retain default formatter add some dummy file as output:
node cucumber.js --format ./path/to/Reporter.js:./dummy.txt
If you can not use classes (ES6 or TypeScript), here is an example of Reporter.js file written in plain JS:
var CucumberJSAllureFormatter = require("cucumberjs-allure2-reporter").CucumberJSAllureFormatter;
var AllureRuntime = require("cucumberjs-allure2-reporter").AllureRuntime;
function Reporter(options) {
CucumberJSAllureFormatter.call(this,
options,
new AllureRuntime({ resultsDir: "./out/allure-results" }),
{});
}
Reporter.prototype = Object.create(CucumberJSAllureFormatter.prototype);
Reporter.prototype.constructor = Reporter;
exports.default = Reporter;
Instance of AllureInterface will be added to World prototype. You can use it for creating nested steps and adding info to the report.
Ilya Korobitsyn mail@korobochka.org
- Claudia Hardman claudia.hardman@mattel.com