jest-html-reporters vs cucumber-html-reporter vs mochawesome vs mochawesome-report-generator
JavaScript Test Reporting Libraries
jest-html-reporterscucumber-html-reportermochawesomemochawesome-report-generatorSimilar Packages:

JavaScript Test Reporting Libraries

JavaScript test reporting libraries are tools that generate visual reports from test results, making it easier for developers to understand the outcomes of their testing processes. These libraries enhance the visibility of test results by providing structured, user-friendly reports that can be shared with team members or stakeholders. They cater to different testing frameworks and methodologies, allowing for a variety of reporting styles and formats. By utilizing these libraries, teams can improve their testing workflows and maintain high-quality code through better insights into test performance.

Npm Package Weekly Downloads Trend

3 Years

Github Stars Ranking

Stat Detail

Package
Downloads
Stars
Size
Issues
Publish
License
jest-html-reporters285,1595353.18 MB222 years agoMIT
cucumber-html-reporter023612.5 MB93a year agoMIT
mochawesome01,07735.7 kB835 months agoMIT
mochawesome-report-generator02421.16 MB824 months agoMIT

Feature Comparison: jest-html-reporters vs cucumber-html-reporter vs mochawesome vs mochawesome-report-generator

Integration

  • jest-html-reporters:

    Jest HTML Reporters is designed specifically for Jest, ensuring a smooth integration that leverages Jest's built-in features for reporting, making it easy to set up and use without additional configuration.

  • cucumber-html-reporter:

    Cucumber HTML Reporter integrates directly with Cucumber, allowing for easy generation of reports from BDD-style tests. It captures the results of scenarios written in Gherkin syntax, making it ideal for teams practicing BDD.

  • mochawesome:

    Mochawesome works seamlessly with Mocha, providing a straightforward setup for generating detailed reports from Mocha test runs. It captures all relevant test information and presents it in a visually appealing format.

  • mochawesome-report-generator:

    Mochawesome Report Generator takes the JSON output from Mochawesome and transforms it into a customizable HTML report, allowing for greater flexibility in how reports are generated and displayed.

Output Format

  • jest-html-reporters:

    Produces clean and simple HTML reports that highlight test results and coverage, making it easier for developers to quickly assess the status of their tests.

  • cucumber-html-reporter:

    Generates visually rich HTML reports that are easy to read and understand, suitable for both technical and non-technical audiences, with a focus on the BDD approach.

  • mochawesome:

    Creates comprehensive reports in both HTML and JSON formats, providing detailed insights into test execution, including pass/fail counts, duration, and error messages.

  • mochawesome-report-generator:

    Generates HTML reports from Mochawesome's JSON output, allowing for customization in the report's appearance and structure, catering to specific project needs.

Customization

  • jest-html-reporters:

    Allows for some level of customization in the report's appearance, enabling teams to tailor the output to fit their branding or specific reporting needs.

  • cucumber-html-reporter:

    Offers limited customization options focused on maintaining the integrity of BDD reports, ensuring that the output remains consistent with the Gherkin syntax.

  • mochawesome:

    Highly customizable, allowing users to modify the report's layout, themes, and included information, making it adaptable to various team preferences.

  • mochawesome-report-generator:

    Provides extensive customization options for the generated reports, including themes and layout adjustments, giving teams control over how their test results are presented.

Ease of Use

  • jest-html-reporters:

    Very easy to set up and use with Jest, requiring minimal configuration to start generating reports, making it suitable for teams looking for quick integration.

  • cucumber-html-reporter:

    Designed for simplicity in generating reports from Cucumber tests, making it easy for teams to implement without extensive setup or configuration.

  • mochawesome:

    While it requires Mocha as a prerequisite, it is straightforward to use and generates detailed reports with little overhead, making it accessible for teams familiar with Mocha.

  • mochawesome-report-generator:

    Requires familiarity with Mochawesome's JSON output but is user-friendly in generating reports, making it a good choice for teams already using Mochawesome.

Community Support

  • jest-html-reporters:

    Benefits from Jest's large community, ensuring regular updates and a wealth of resources for troubleshooting and enhancements.

  • cucumber-html-reporter:

    Supported by a community focused on BDD practices, ensuring ongoing updates and improvements aligned with Cucumber's evolution.

  • mochawesome:

    Has a strong community backing, with frequent updates and a variety of plugins and extensions available to enhance its functionality.

  • mochawesome-report-generator:

    Supported by the Mochawesome community, providing ample resources and support for users looking to customize their reporting experience.

How to Choose: jest-html-reporters vs cucumber-html-reporter vs mochawesome vs mochawesome-report-generator

  • jest-html-reporters:

    Opt for Jest HTML Reporters if you are using Jest as your testing framework and want a simple, customizable HTML report that integrates seamlessly with Jest's output, providing a clear overview of test results and coverage.

  • cucumber-html-reporter:

    Choose Cucumber HTML Reporter if you are using Cucumber for behavior-driven development (BDD) and need a visually appealing report that reflects the Gherkin syntax of your tests, making it easier for non-technical stakeholders to understand the test outcomes.

  • mochawesome:

    Select Mochawesome if you are using Mocha as your testing framework and need a comprehensive report that combines both HTML and JSON formats, allowing for detailed insights into test execution and easy integration with CI/CD pipelines.

  • mochawesome-report-generator:

    Use Mochawesome Report Generator if you want to generate reports from existing Mochawesome JSON output, providing flexibility in how you present your test results and the ability to customize the report format.

README for jest-html-reporters

Jest reporter

npm NPM downloads license

English | 简体中文

Jest test results processor for generating a summary in HTML

Example page https://hazyzh.github.io/report.html

example picture

Installation


  # yarn
  yarn add jest-html-reporters --dev
  # npm
  npm install jest-html-reporters --save-dev

Usage


Configure Jest to process the test results by adding the following entry to the Jest config (jest.config.json):

"jest": {
  ...,
  "reporters": [
    "default",
    "jest-html-reporters"
  ],
  ...
}

As you run Jest from within the terminal, a file called jest_html_reporters.html will be created within your root folder containing information about your tests.

Available Options

The options below are specific to the reporter.

Option NameTypeDefaultDescriptionenv variables name
publicPathstring''specify the base pathJEST_HTML_REPORTERS_PUBLIC_PATH
filenamestringjest_html_reporters.htmlFilename of saved report
Applies to the generated html
JEST_HTML_REPORTERS_FILE_NAME
includeConsoleLogbooleanfalseset true to display console logs for each test suite. NOTE: the precondition is to run Jest with --verbose=false in order to catch all logs during the tests.JEST_HTML_REPORTERS_INCLUDE_CONSOLE_LOG
darkThemebooleanfalseset true to generate dark theme report pageJEST_HTML_REPORTERS_DARK_THEME
failureMessageOnlynumber00 : always create report.
1 : show failure test suites messages only in Report.
2 : only create report when some test suites failed.
JEST_HTML_REPORTERS_FAILURE_MESSAGE_ONLY
inlineSourcebooleanfalseOption to save report in a single combined HTML file #184JEST_HTML_REPORTERS_INLINE_SOURCE
pageTitlestringReportspecify header and page titleJEST_HTML_REPORTERS_PAGE_TITLE
logoImgPathstringundefinedspecify path of the image that will be displayed to the right of page titleJEST_HTML_REPORTERS_LOGO_IMG_PATH
hideIconbooleanfalsehide default iconJEST_HTML_REPORTERS_HIDE_ICON
expandbooleanfalsespecify whether default expand all dataJEST_HTML_REPORTERS_EXPAND
testCommandstring""copy command content to quickly run test fileJEST_HTML_REPORTERS_TEST_COMMAND
openReportbooleanin dev=true, rest=falseoptions for npm package openJEST_HTML_REPORTERS_OPEN_REPORT
urlForTestFilesstring''url for test files. If user set this value, Details table shows an icon link to each rows. The link is constructed by joining urlForTestFiles and relativePath (like /src/utils/index.test.js) for each tests. See the detail in #221JEST_HTML_REPORTERS_URL_FOR_TEST_FILES
customInfosarrayundefinedshow some custom data info in the report, example value [ {title: 'test1', value: 'test1'}, {title: 'test2', value: 'test2'}], you can also set value to a environment variable JEST_HTML_REPORTERS_CUSTOM_INFOS, see detail in #32JEST_HTML_REPORTERS_CUSTOM_INFOS
enableMergeDatabooleanfalsefor default enable merge test data featureJEST_HTML_REPORTERS_ENABLE_MERGE_DATA
dataMergeLevelnumber1default merge test data levelJEST_HTML_REPORTERS_DATA_MERGE_LEVEL
env onlystringsystem default temporary directorypath to a temporary folder with attachmentsJEST_HTML_REPORTERS_TEMP_DIR_PATH
stripSkippedTestbooleanfalseskip the pending tests and suites in the final reportJEST_HTML_REPORTERS_STRIP_SKIPPED_TEST

example add config options

...,
"reporters": [
  "default",
  ["jest-html-reporters", {
    "publicPath": "./html-report",
    "filename": "report.html",
    "openReport": true
  }]
]

some features.

  • Collapsable Test Groups

This feature regrading to #37, if a test file has many test cases, here will show a Merge Data checkbox on the expanded table. You can check it to merge data and set the merge level to control how to combine those data.

For Example merge data example

  • Attach screenshot to report

This feature regrading to #36, this package will a new method named addAttach.

interface IAddAttachParams {
    attach: string | Buffer;
    description: string | object;
    context: any;
    bufferFormat: string;
}

There are three params of this method, description is easy to understand. The param attach referring to the image, you can pass a buffer or string, if it was a buffer the package will help you create a dir named jest-html-reporters-attach and save that buffer as a jpg image in it under the publicPath. if you have already saved the image, just pass the image's path as the attach param. context is an optional parameter. Here can be specified context (default is this.global).

Here is an Example with puppeteer.

// Example attach with **buffer**
const { addAttach } = require("jest-html-reporters/helper");
const puppeteer = require("puppeteer");

describe("just examples", () => {
  test("test buffer", async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto("https://www.google.com");
    const data = await page.screenshot();
    await browser.close();
    await addAttach({
      attach: data,
      description: 'img 1',
    });
    await addAttach({
      attach: await fs.readFileSync('./test.mp4'),
      description: 'img 1',
      bufferFormat: 'mp4',
    });
    expect(1).toBe(1);
  });
});
// Example attach with **string**
const { addAttach } = require("jest-html-reporters/helper");
const puppeteer = require("puppeteer");
const path = require("path");

describe("just examples", () => {
  test("case string", async () => {
    const filePath = path.resolve(__dirname, "./test.jpg");
    await browser.close();
    await addAttach({
      attach: filePath,
      description: 'test google 2',
    });

    await addAttach({
      attach: 'www.example.com/test.mp4',
      description: 'test video 2',
    });
    expect(1).toBe(2);
  });
});

it will show like this example

  • Attach a message to the report

This feature is in regards to #63 & #64. It allows you to add a message or log something to the html report with addMsg()

/**
 * @param {object} options - options object
 * @param {string | object} options.message - message string
 * @param {any} [options.context] - custom context (optional)
 */
const addMsg = async ({ message, context }) => { ... }

Only one parameter is required. If you pass an serializable object like, it will auth using JSON.stringify(object, null, 2) to save the object and then prettified it in report. context is an optional parameter. Here can be specified context (default is this.global).

Here is an Example with Nightmare.

const { addAttach, addMsg } = require("jest-html-reporters/helper");
const Nightmare = require("nightmare");

describe("Yet another example", () => {
  test("Both addAttach & addMsg with failure", async () => {
    const nightmare = Nightmare({ show: true });
    await addMsg({ message: { won: 1, too: 2 } });
    await nightmare.goto("https://duckduckgo.com");
    const s1 = await nightmare.screenshot();
    await addAttach(s1, "test duckduckgo 1");
    await nightmare.end();
    await addMsg({ message: JSON.stringify(process, null, 2) });
    expect(2).toEqual(1);
  }, 20000);
  test("addMsg with success", async () => {
    await addMsg({ message: JSON.stringify({ free: 3, for: 4 }, null, 2) });
    expect(2).toEqual(2);
  });
});

example

Message still displays without screenshots and with a successful test example

  • Show a link for each test file

If user set some value to urlForTestFiles, Details table shows an icon link to each rows. The link is constructed by joining urlForTestFiles (ex: https://github.com/Hazyzh/jest-html-reporters/blob/master) and relativePath (ex: /src/utils/index.test.js) for each tests.

Details Table shows an icon link to each rows.