Skip to content

Hargne/jest-html-reporter

Repository files navigation

📜

jest-html-reporter

A Jest test results processor for generating a summary in HTML.
Documentation »



Inspired by karma-htmlfile-reporter



Installation

npm:

$ npm install jest-html-reporter --save-dev

yarn:

$ yarn add jest-html-reporter --dev

Usage

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

"reporters": [
	"default",
	["./node_modules/jest-html-reporter", {
		"pageTitle": "Test Report"
	}]
]

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

There are multiple configuration options available. To read more about these, please refer to the documentation.

Alternative Usage as a Test Results Processor

To run the reporter as a test results processor (after Jest is complete instead of running in parallel), add the following entry to the Jest config (jest.config.json):

{
	"testResultsProcessor": "./node_modules/jest-html-reporter"
}

Note: When running as a testResultsProcessor, the configuration needs be placed within a new file named jesthtmlreporter.config.json residing in the root folder. More information about this can be found in the documentation.

Node Compatibility

📌 Configuration Options (All Optional)

Option Type Default Description
append boolean false Append test results to an existing report.
boilerplate string null Path to an HTML boilerplate file. The {jesthtmlreporter-content} variable will be replaced with test results.
collapseSuitesByDefault boolean false Collapse test suites (accordions) by default.
customScriptPath string null Path to an external script file injected into the report.
dateFormat string yyyy-mm-dd HH:MM:ss Date format for timestamps. See documentation for available formats.
executionTimeWarningThreshold number 5 Warn if a test suite exceeds this execution time (in seconds).
includeConsoleLog boolean false Include console.log outputs in the report (requires --verbose=false).
includeFailureMsg boolean false Show detailed error messages for failed tests.
includeStackTrace boolean true Show stack traces for failed tests.
includeSuiteFailure boolean false Show detailed errors for entire failed test suites.
includeObsoleteSnapshots boolean false Show obsolete snapshot names.
logo string null Path to an image file to display in the report header.
outputPath string ./test-report.html Full path for the output report file (must end in .html).
pageTitle string "Test Report" Title of the document and top-level heading.
sort string null Sort test results by a specific method. Available values:
status → Sorts by test status (pending → failed → passed).
status:{custom-order} → Custom status order (e.g., "status:failed,passed,pending").
executionasc → Sorts by execution time ascending.
executiondesc → Sorts by execution time descending.
titleasc → Sorts by suite filename/test name ascending.
titledesc → Sorts by suite filename/test name descending.
statusIgnoreFilter string null Comma-separated list of statuses to exclude: "passed", "pending", "failed".
styleOverridePath string null Path to a CSS file to override default styles. See themes documentation.
useCssFile boolean false Link to the CSS file instead of inlining styles.

Continuous Integration

Configuration may also be performed with environment variables for dynamic file saving paths in different environments. *NOTE: Environment variables will take precedence over configurations set in jesthtmlreporter.config.json and package.json*

Example

Here is an example of dynamically naming your output file and test report title to match your current branch that one might see in a automated deployment pipeline before running their tests.

export BRANCH_NAME=`git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3`
export JEST_HTML_REPORTER_OUTPUT_PATH=/home/username/jest-test-output/test-reports/"$BRANCH_NAME".html
export JEST_HTML_REPORTER_PAGE_TITLE="$BRANCH_NAME"\ Test\ Report

Configuration Environment Variables

The environment variables reflect the configuration options available in JSON format. Please read the documentation for more information on these variables.