node-coverage-badges
v1.0.1
Published
Generating coverage badges from jest
Downloads
16
Readme
node-coverage-badges
Generating coverage badges from jest coverage report.
⚡ Badges for everyone
This package uses shields.io to created coverage badges from a coverage json summary file generated by your favorite test runner.
| Badge | Description | | ------------------------------------------------------- | ---------------------------------------------- | | | Percentage of DD-paths followed during tests | | | Percentage of functions executed within tests | | | Percentage of lines covered by tests | | | Percentage of statements executed within tests | | | Average of the above coverage percentages |
⚡ Github action
If you want to integrate this to your CI/CD, you have a github action available for this.
⚡ Requirements
You need a test runner to generate the report summary file. For example vitest or jest.
⚡ Setup
🔶 Install
npm i -D node-coverage-badges
# or
yarn add -D node-coverage-badges
# or
pnpm i -D node-coverage-badges
🔶 Test runner configuration
You will need to add json-summary to coverage reporters in your test runner config.
🧿 vitest
vite config
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
coverage: {
reporter: ['json-summary'],
// ...
},
},
});
🧿 jest
jest config
module.exports = {
coverageReporters: ["json-summary"];
// ...
};
⚡ Usage
You have two ways to generate coverage badges: cli and node. Both will create a folder where .svg files will be written.
🔶 Cli
You can add a script to your package.json like so:
"scripts": {
"badges": "generateBadges"
},
The generateBadges
function accepts three optional arguments to specify:
- a custom path for the input json summary file.
- a custom path for the output path.
- a simple icon slug to specify a custom badge icon.
# will generate badges from './coverage/coverage-summary.json' in './badges' (default)
yarn generateBadges
# will generate badges from './myModule/coverage-summary.json' in './cool' folder.
yarn generateBadges -c ./myModule/coverage-summary.json -o ./cool
# will generate badges from './myModule/coverage-summary.json' in './cool' folder using the vitest icon.
yarn generateBadges -c ./myModule/coverage-summary.json -o ./cool -l vitest
🔶 Node
Another way is to directly use the package:
import { generateBadges } from 'node-coverage-badges';
(async () => {
// will generate badges from './coverage/coverage-summary.json' in './badges' (default)
await generateBadges();
})();
The function optionally accepts two arguments to specify a custom path for the json summary file and the output path:
import { generateBadges } from 'node-coverage-badges';
(async () => {
// will generate badges from './myModule/coverage-summary.json' in './cool' using the jest icon.
await generateBadges('./myModule/coverage-summary.json', './cool', 'jest');
})();
⚡ Thanks
Big thanks to Shield for this awesome tool!