Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

mocha-badge-generator

ianpogi51.3kMIT0.11.0

Mocha reporter which outputs badge with the number of tests passed and failed.

mocha, reporter, badge, shield, svg

readme

Mocha Badge Generator

Test Build Status codecov contributions welcome

https://nodei.co/npm/mocha-badge-generator.png?downloads=true&downloadRank=true&stars=true

No need for 3rd party to generate badge for your tests. You can generate it locally by running your test script.

Mocha Badge Generator is a Mocha reporter which outputs a badge (SVG or PNG file) with the number of tests passed and failed which you can embed in your readme file.

Install

npm install mocha-badge-generator --save-dev

Usage

In your package.json, add reporter to your test script.

{
    "scripts": {
        "test": "mocha --reporter mocha-badge-generator",
    }
}

Default output file is test/badge.svg.

Configuration

You can change the output by defining Mocha --reporter-options or environment variables in your test script.

--reporter-option Env variable Default Description
badge_subject MOCHA_BADGE_GEN_SUBJECT Tests The text that appears the left side of the badge.
badge_ok_color MOCHA_BADGE_GEN_OK_COLOR 44cc11 (brightgreen) The color when all tests pass. Colors may be a 6-digit hex code or a named CSS color. If upgrading from <= 0.3.0, please note that if you were not relying on the default colors, the CSS named colors may differ from the badge-up builtin colors we were using previously; use the corresponding hex code (without the #), and convert to 6 digits (e.g., 4C1 to 44CC11). May now also be followed by a comma and s{ffffff} to add a different stroke color.
badge_ko_color MOCHA_BADGE_GEN_KO_COLOR e05d44 (red) The color when at least 1 test fail. See above for possible colors (and a note about upgrading from <= 0.3.0).
badge_output MOCHA_BADGE_GEN_OUTPUT ./test/badge.svg Path of the output file.
badge_format MOCHA_BADGE_GEN_FORMAT svg Output file format. Possible values are "svg" and "png". However, please note that for format "png", while versions <= 0.3.0 bundled svg2png, you must now add svg2png yourself (e.g., to your dependencies or devDependencies).
badge_template MOCHA_BADGE_GEN_TEMPLATE "${passes}/${total}" ES6 template for formatting the results; will be passed passes, failures, total, duration, speeds (with fast, medium, and slow property counts).
badge_threshold MOCHA_BADGE_GEN_THRESHOLD 0 Number of acceptable failures (such that if exceeded, badge_ko_color will be used in place of badge_ok_color).
badge_slow_threshold MOCHA_BADGE_GEN_SLOW_THRESHOLD N/A Indicates a maximum number of slow tests beyond which the tests will be considered a failure (such that if the amount is exceeded, badge_ko_color will be used in place of badge_ok_color). No default as only checked if present.
badge_duration_threshold MOCHA_BADGE_GEN_DURATION_THRESHOLD N/A Indicates a maximum duration in milliseconds beyond which the tests will be considered a failure (such that if the duration is exceeded, badge_ko_color will be used in place of badge_ok_color). No default as only checked if present.

Sample config for changing output to PNG.

{
    "scripts": {
        "test": "mocha --reporter mocha-badge-generator --reporter-options=badge_format=png,badge_output=badge.png",
    }
}

Alternatively, you may use environmental variables:

{
    "scripts": {
        "test": "MOCHA_BADGE_GEN_FORMAT=png MOCHA_BADGE_GEN_OUTPUT=badge.png mocha --reporter mocha-badge-generator",
    }
}

Adding to your README

![Test](test/badge.svg)

If you want the badge to show in npm, use the following format.

![Test](https://raw.githubusercontent.com/ianpogi5/mocha-badge-generator/master/test/badge.svg?sanitize=true)

Change ianpogi5/mocha-badge-generator to your own github repo.

Other methods

While the main method may be sufficient, certain environments (such as Cypress) may call for creating a badge based on already-generated JSON test file results (e.g., when merging multiple test results into a single file).

makeBadge

const {makeBadge} = require('mocha-badge-generator/makeBadge');
makeBadge({
    // REQUIRED
    passes,
    failures,
    // OPTIONAL
    options: {
        // See above for expected values
        badge_subject,
        badge_ok_color,
        badge_ok_color,
        badge_output,
        badge_format,
        badge_template,
        badge_threshold,
        badge_slow_threshold,
        badge_duration_threshold
    }
});

makeBadgeFromJSONFile

You can make a badge out of a Mocha JSON reporter report (as a JSON file).

const {makeBadgeFromJSONFile} = require('mocha-badge-generator/makeBadge');
makeBadgeFromJSONFile({
    // REQUIRED
    // This JSON file expects the structure: `{stats: {passes, failures}}`
    file: '/path/to/JSON/file'
    // Options
    // Milliseconds which will be considered "slow" (and by Mocha's algorithm,
    //  any more than half of this will still be considered "medium"); this
    //  is not available in test reports even when individual tests add
    //  their own calls to `slow`, so reporting on `speeds` may only be
    //  useful if your tests have no idiosyncratic speed expectations.
    //  When using `makeBadge` (i.e., using with Mocha while it is running),
    //  however, there is no such limitation, and no need to specify `slow`
    //  as an option to `makeBadge` (just supply it as usual to Mocha).
    slow: 75,
    // See above for expected values
    badge_subject,
    badge_ok_color,
    badge_ok_color,
    badge_output,
    badge_format,
    badge_template,
    badge_threshold,
    badge_slow_threshold,
    badge_duration_threshold
});

CLI

The makeBadgeFromJSONFile functionality is exposed from the command line:

cli.svg