Converts passing Cucumber JSON output into stakeholder-facing living documentation: generates HTML reports via multiple-cucumber-html-reporter (Node) or Serenity BDD aggregate (JVM), applies Gherkin tags to drive report sections, and publishes to GitHub/GitLab Pages in CI. Use when BDD scenarios are in use and the team needs an always-current, non-test-engineer-readable document showing which acceptance criteria pass.
73
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Renders Cucumber JSON into a stakeholder HTML report for any Cucumber-JS project. Referenced from living-documentation-publisher Step 2.
Install the reporter as a dev dependency (multiple-cucumber-html-reporter installation):
npm install multiple-cucumber-html-reporter --save-devUse a timestamped filename when running parallel shards to avoid overwrite (multiple-cucumber-html-reporter usage):
cucumber-js features/ \
--format json:reports/cucumber-$(date +%s).jsonCreate scripts/generate-report.js:
const report = require("multiple-cucumber-html-reporter");
report.generate({
// required
jsonDir: "./reports/",
reportPath: "./docs/living-documentation/",
// identification metadata shown in the report header
metadata: {
browser: { name: "chrome", version: "latest" },
device: "CI runner",
platform: { name: "linux", version: "22.04" }
},
// custom info block (release, project, branch)
customData: {
title: "Run info",
data: [
{ label: "Project", value: "Checkout Service" },
{ label: "Release", value: process.env.RELEASE_TAG || "dev" }
]
},
// display options
reportName: "Checkout Service - Living Documentation",
pageTitle: "Acceptance Criteria Status",
displayDuration: true,
durationInMS: true
});Run it after the test step (multiple-cucumber-html-reporter usage):
npm test && node scripts/generate-report.jsKey options from the official docs (multiple-cucumber-html-reporter options):
| Option | Type | Default | Purpose |
|---|---|---|---|
jsonDir | String | required | Directory of Cucumber JSON files |
reportPath | String | required | Output directory for the HTML report |
reportName | String | Title displayed in the UI | |
pageTitle | String | "Multiple Cucumber HTML Reporter" | HTML <head> title |
displayDuration | Boolean | false | Show step/scenario timing |
durationInMS | Boolean | false | Interpret step durations as ms not ns |
saveCollectedJSON | Boolean | false | Keep merged JSON for debugging |
customStyle | Path | Append a CSS file for brand colours | |
overrideStyle | Path | Replace all default CSS |
AfterFeatures hook (CucumberJS 2.x) vs. separate post-test script (3.x+), timestamped JSON filenames.jsonDir, reportPath, reportName, pageTitle, displayDuration, durationInMS, saveCollectedJSON, customStyle, overrideStyle full option table.