Socket
Socket
Sign inDemoInstall

jest-html-reporters

Package Overview
Dependencies
8
Maintainers
1
Versions
55
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    jest-html-reporters

Jest test results processor for generating a summary in HTML


Version published
Maintainers
1
Install size
3.20 MB
Created

Readme

Source

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 Nameenv variables nameTypeDefaultDescription
publicPathJEST_HTML_REPORTERS_PUBLIC_PATHstring''specify the base path
filenameJEST_HTML_REPORTERS_FILE_NAMEstringjest_html_reporters.htmlFilename of saved report
Applies to the generated html
expandJEST_HTML_REPORTERS_EXPANDBooleanfalsespecify whether default expand all data
pageTitleJEST_HTML_REPORTERS_PAGE_TITLEstringReportspecify header and page title
logoImgPathJEST_HTML_REPORTERS_LOGO_IMG_PATHstringundefinedspecify path of the image that will be displayed to the right of page title
hideIconJEST_HTML_REPORTERS_HIDE_ICONbooleanfalsehide default icon
customInfosJEST_HTML_REPORTERS_CUSTOM_INFOSarrayundefinedshow 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 #32
testCommandJEST_HTML_REPORTERS_TEST_COMMANDstring""copy command content to quickly run test file
openReportJEST_HTML_REPORTERS_OPEN_REPORTjsonin dev=true, rest=falseoptions for npm package open
env variable support onlyJEST_HTML_REPORTERS_TEMP_DIR_PATHstringsystem default temporary directorypath to a temporary folder with attachments
failureMessageOnlyJEST_HTML_REPORTERS_FAILURE_MESSAGE_ONLYnumber00 : always create report.
1 : show failure test suites messages only in Report.
2 : only create report when some test suites failed.
enableMergeDataJEST_HTML_REPORTERS_ENABLE_MERGE_DATAbooleanfalsefor default enable merge test data feature
dataMergeLevelJEST_HTML_REPORTERS_DATA_MERGE_LEVELnumber1default merge test data level
inlineSourceJEST_HTML_REPORTERS_INLINE_SOURCEbooleanfalseOption to save report in a single combined HTML file #184
urlForTestFilesJEST_HTML_REPORTERS_URL_FOR_TEST_FILESstring''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 #221
darkThemeJEST_HTML_REPORTERS_DARK_THEMEbooleanfalseset true to generate dark theme report page
includeConsoleLogJEST_HTML_REPORTERS_INCLUDE_CONSOLE_LOGbooleanfalseset 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.

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;
    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} options.message - message string
 * @param {any} [options.context] - custom context (optional)
 */
const addMsg = async ({ message, context }) => { ... }

Only one parameter is required. If you stringify an object like this JSON.stringify(object, null, 2), the object will be prettified. 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: JSON.stringify({ won: 1, too: 2 }, null, 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.

Keywords

FAQs

Last updated on 03 Mar 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡ī¸ by Socket Inc