jest-html-reporters vs jest-junit vs jest-silent-reporter vs jest-stare
Jest Reporting Libraries
jest-html-reportersjest-junitjest-silent-reporterjest-stareSimilar Packages:

Jest Reporting Libraries

These libraries enhance the reporting capabilities of Jest, a popular JavaScript testing framework. They provide various formats and styles for test results, enabling better visualization and integration with CI/CD pipelines. Each library serves a unique purpose, catering to different reporting needs, such as generating HTML reports, JUnit XML reports, silent outputs, or interactive dashboards.

Npm Package Weekly Downloads Trend

3 Years

Github Stars Ranking

Stat Detail

Package
Downloads
Stars
Size
Issues
Publish
License
jest-html-reporters05353.18 MB222 years agoMIT
jest-junit049941.9 kB143 years agoApache-2.0
jest-silent-reporter015713.6 kB42 years agoMIT
jest-stare02691.26 MB115 months agoMIT

Feature Comparison: jest-html-reporters vs jest-junit vs jest-silent-reporter vs jest-stare

Report Format

  • jest-html-reporters:

    Generates visually appealing HTML reports that can be easily viewed in a browser, allowing for a clear presentation of test results with detailed information on passed and failed tests.

  • jest-junit:

    Produces JUnit XML reports, which are widely accepted in CI/CD environments, enabling seamless integration with various build tools and platforms for automated testing workflows.

  • jest-silent-reporter:

    Outputs results in a minimalistic format directly to the console, focusing on failures and errors without overwhelming the user with passing test messages, making it suitable for large test suites.

  • jest-stare:

    Creates an interactive HTML dashboard that allows users to navigate through test results, providing a comprehensive overview of test performance and outcomes.

Customization

  • jest-html-reporters:

    Offers extensive customization options for the report's appearance, including themes, styles, and the ability to include additional information such as screenshots or error messages.

  • jest-junit:

    Customization is limited to the XML output format, but it allows configuration of test suite names and properties to match specific CI/CD requirements.

  • jest-silent-reporter:

    Minimal customization options, focusing instead on providing a clean output without distractions, which is ideal for developers who prefer simplicity.

  • jest-stare:

    Highly customizable dashboard layout and features, allowing users to tailor the displayed information and navigation to their specific needs.

Integration

  • jest-html-reporters:

    Integrates easily with Jest and can be configured to run after tests, making it straightforward to generate reports as part of the testing process.

  • jest-junit:

    Designed specifically for integration with CI/CD tools, making it easy to upload test results to various platforms that support JUnit format, ensuring compatibility across different environments.

  • jest-silent-reporter:

    Integrates seamlessly with Jest, providing a straightforward setup for developers who want to minimize console output during test runs without additional configuration.

  • jest-stare:

    Integrates with Jest and can be set up to generate reports automatically, providing a user-friendly interface for viewing results after each test run.

Use Case

  • jest-html-reporters:

    Best suited for projects where test results need to be shared with non-technical stakeholders or where visual representation of test outcomes is crucial.

  • jest-junit:

    Ideal for projects that require automated testing in CI/CD pipelines, especially when using tools that rely on JUnit XML reports for test result analysis.

  • jest-silent-reporter:

    Perfect for developers working on large test suites who want to focus on critical failures without being distracted by passing tests, enhancing productivity during development.

  • jest-stare:

    Great for teams that prefer an interactive approach to reviewing test results, allowing for easy navigation and analysis of test performance over time.

Learning Curve

  • jest-html-reporters:

    Easy to set up and use, especially for those familiar with Jest. The customization options may require some learning but are generally straightforward.

  • jest-junit:

    Simple to integrate into existing Jest setups, with minimal configuration needed to start generating JUnit reports, making it accessible for most developers.

  • jest-silent-reporter:

    Very easy to implement; developers can quickly adopt it without needing to understand complex configurations or options.

  • jest-stare:

    Requires some initial setup to customize the dashboard, but once configured, it provides a user-friendly experience for exploring test results.

How to Choose: jest-html-reporters vs jest-junit vs jest-silent-reporter vs jest-stare

  • jest-html-reporters:

    Choose jest-html-reporters if you need visually appealing HTML reports that are easy to read and share with stakeholders. This package is ideal for projects where presentation of test results is important, and it allows customization of the report layout and style.

  • jest-junit:

    Select jest-junit if your project requires integration with CI/CD tools that expect JUnit XML format. This package is essential for generating reports that can be consumed by tools like Jenkins, CircleCI, or Travis CI, making it suitable for automated testing environments.

  • jest-silent-reporter:

    Opt for jest-silent-reporter if you prefer minimal console output during test runs. This is particularly useful in large test suites where you want to focus on errors and failures without cluttering the console with passing test messages, enhancing the readability of test results.

  • jest-stare:

    Use jest-stare if you want an interactive HTML dashboard for your test results. This package provides a user-friendly interface to explore test outcomes, making it easier to analyze results and track changes over time. It's great for teams that need a comprehensive view of their testing efforts.

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.