{"id":14969276,"url":"https://github.com/cucumber/cucumber-js-pretty-formatter","last_synced_at":"2025-10-29T01:38:59.091Z","repository":{"id":39911893,"uuid":"327637717","full_name":"cucumber/cucumber-js-pretty-formatter","owner":"cucumber","description":"Cucumber.js pretty formatter","archived":false,"fork":false,"pushed_at":"2024-10-29T02:29:09.000Z","size":6801,"stargazers_count":17,"open_issues_count":13,"forks_count":3,"subscribers_count":76,"default_branch":"main","last_synced_at":"2024-10-29T14:46:52.640Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cucumber.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cucumber.png","metadata":{"funding":{"open_collective":"cucumber","github":"cucumber"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-07T14:36:41.000Z","updated_at":"2024-09-03T07:12:40.000Z","dependencies_parsed_at":"2024-02-25T23:38:45.263Z","dependency_job_id":"c30874a3-9dfe-4b8b-bc32-6bf0c5d7929c","html_url":"https://github.com/cucumber/cucumber-js-pretty-formatter","commit_stats":{"total_commits":260,"total_committers":8,"mean_commits":32.5,"dds":"0.46153846153846156","last_synced_commit":"b73d06489c99e1505b130f75d0aaf6ac61cf84f8"},"previous_names":["jbpros/cucumber-pretty-formatter","cucumber/cucumber-pretty-formatter"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-js-pretty-formatter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-js-pretty-formatter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-js-pretty-formatter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fcucumber-js-pretty-formatter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cucumber","download_url":"https://codeload.github.com/cucumber/cucumber-js-pretty-formatter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339714,"owners_count":20923127,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:41:28.644Z","updated_at":"2025-10-29T01:38:59.085Z","avatar_url":"https://github.com/cucumber.png","language":"TypeScript","funding_links":["https://opencollective.com/cucumber","https://github.com/sponsors/cucumber"],"categories":[],"sub_categories":[],"readme":"⚠️⚠️⚠️  \nThis repository is now archived. The current pretty formatter for JavaScript and other platforms can be found at:  \nhttps://github.com/cucumber/pretty-formatter  \n⚠️⚠️⚠️\n\n# Official Cucumber.js Pretty Formatter\n\n[![build][build-badge]][build]\n[![npm][version]][npm]\n[![npm][downloads]][npm]\n\n[build]: https://github.com/jbpros/cucumber-pretty-formatter/actions?query=workflow%3Abuild\n[build-badge]: https://github.com/jbpros/cucumber-pretty-formatter/workflows/build/badge.svg\n[npm]: https://www.npmjs.com/package/@cucumber/pretty-formatter\n[version]: https://img.shields.io/npm/v/@cucumber/pretty-formatter.svg\n[downloads]: https://img.shields.io/npm/dm/@cucumber/pretty-formatter.svg\n\nThe Cucumber.js pretty formatter logs your feature suite in its original Gherkin form. It offers custom style themes.\n\n## Install\n\nThe pretty formatter requires:\n\n- Node.js 10, 12, 14 or 15.\n- [Cucumber.js](https://www.npmjs.com/package/@cucumber/cucumber) 7.0 and above.\n\n    npm install --save-dev @cucumber/pretty-formatter @cucumber/cucumber\n\nThere are pretty formatters for [older versions of Cucumber](#older-cucumber-versions).\n\n## Usage\n\n    cucumber-js -f @cucumber/pretty-formatter\n\nWe recommend using [Cucumber profiles](https://github.com/cucumber/cucumber-js/blob/master/docs/cli.md#profiles) to [specify formatters](https://github.com/cucumber/cucumber-js/blob/master/docs/cli.md#formats).\n\n## Theme customisation\n\nYou can define your own colors by passing a `theme` format option:\n\n    --format-options '{\"theme\": \u003cTHEME_JSON\u003e}'\n\nWhere `THEME_JSON` is in the following shape:\n\n```json\n{\"feature keyword\": [\"magenta\", \"bold\"], \"scenario keyword\": [\"red\"]}\n```\n\nThe customisable theme items are:\n\n* `datatable border`\n* `datatable content`\n* `datatable`: all data table elements (border and content)\n* `docstring content`: multiline argument content\n* `docstring delimiter`: multiline argument delimiter: `\"\"\"`\n* `feature description`\n* `feature keyword`\n* `feature name`\n* `location`: location comments added to the right of feature and scenario names\n* `rule keyword`\n* `rule name`\n* `scenario keyword`\n* `scenario name`\n* `step keyword`\n* `step message`: usually a failing step error message and stack trace\n* `step status`: additional styles added to the built-in styles applied by Cucumber to non-passing steps status. Foreground colors have no effects on this item, background and modifiers do.\n* `step text`\n* `tag`\n\nYou can combine all the styles you'd like from [modifiers, foreground colors and background colors exposed by ansi-styles](https://github.com/chalk/ansi-styles#styles).\n\n### Extending the Default Theme\n\nIf you just want to tweak a few things about the default theme without redefining it entirely, you can grab the default theme in your `cucumber.js` config file and use it as the base for yours:\n\n```js\nconst { DEFAULT_THEME } = require('@cucumber/pretty-formatter')\n\nmodule.exports = {\n  default: {\n    formatOptions: {\n      theme: {\n        ...DEFAULT_THEME,\n        'step text': 'magenta'\n      }\n    }\n  }\n}\n```\n\n### Example Themes\n\n#### _Matrix_\n\nIt could be called *eco-friendly*, cuz it's very green:\n\n    --format-options '{\"theme\":{\"datatable border\":[\"green\"],\"datatable content\":[\"green\",\"italic\"],\"docstring content\":[\"green\",\"italic\"],\"docstring delimiter\":[\"green\"],\"feature description\":[\"green\"],\"feature keyword\":[\"bold\",\"green\"],\"rule keyword\":[\"yellow\"],\"scenario keyword\":[\"greenBright\"],\"scenario name\":[\"green\",\"underline\"],\"step keyword\":[\"bgGreen\",\"black\",\"italic\"],\"step text\":[\"greenBright\",\"italic\"],\"tag\":[\"green\"]}}'\n\n#### _Legacy pretty_\n\nThis was the theme offered by [Ilya Kozhevnikov](http://kozhevnikov.com/)'s pretty formatter, pre-Cucumber.js 7.x.\n\n\u003cimg src=\"https://raw.githubusercontent.com/kozhevnikov/cucumber-pretty/master/docs/homebrew.png\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/kozhevnikov/cucumber-pretty/master/docs/basic.png\" width=\"300\"\u003e\n\n    --format-options '{\"theme\":{\"feature keyword\":[\"magenta\",\"bold\"],\"scenario keyword\":[\"magenta\",\"bold\"],\"step keyword\":[\"bold\"]}}'\n\n### We need more themes\n\nPlease share your creations by forking, adding the theme to this section of the README and [opening a pull request](https://github.com/jbpros/cucumber-pretty-formatter/pulls).\n\n## Older Cucumber versions\n\nIf you're using an older version of Cucumber.js, you'll need to use one of the previous pretty formatters:\n\n### Cucumber.js 1 → 2\n\nThe original pretty formatter used to ship with Cucumber. Simply specify it when invoking Cucumber:\n\n    cucumber-js -f pretty\n\n### Cucumber.js 3 → 6\n\nYou can install [`cucumber-pretty`](https://www.npmjs.com/package/cucumber-pretty), created by [Ilya Kozhevnikov](http://kozhevnikov.com/).\n\n- Cucumber.js 3, 4, 5: `npm i --save-dev cucumber-pretty@1.5`\n- Cucumber.js 6: `npm i --save-dev cucumber-pretty@6`\n\nTell Cucumber to use it:\n\n    cucumber-js -f cucumber-pretty\n\n## Credits\n\nThis project is based on the [original work](https://github.com/kozhevnikov/cucumber-pretty) of [Ilya Kozhevnikov](http://kozhevnikov.com/). It got migrated to TypeScript, upgraded for Cucumber.js 7+ that exposes [cucumber-messages](https://github.com/cucumber/cucumber/tree/master/messages) and is currently maintained by [Julien Biezemans](https://github.com/jbpros/) and the [Cucumber team](https://github.com/cucumber).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumber%2Fcucumber-js-pretty-formatter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcucumber%2Fcucumber-js-pretty-formatter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumber%2Fcucumber-js-pretty-formatter/lists"}