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.
72
90%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
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.