Skip to content

rgoldfinger-quizlet/jest-coverage-report-action

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

jest coverage report πŸ§ͺ

PR Comment example

A GitHub action that reports about your code coverage in every pull request.

MIT License Issues

This action uses Jest to extract code coverage, and comments it on pull request. Inspired by Size-limit action. Features:

  • Reporting code coverage on each pull request. πŸ“ƒ
  • Rejecting pull request, if coverage is under threshold. ❌
  • Comparing coverage with base branch. πŸ”
  • Showing spoiler in the comment for all new covered files. πŸ†•
  • Showing spoiler in the comment for all files, in which coverage was reduced. πŸ”»
  • Failed tests & uncovered line annotations πŸ“’

PR Comment example

Usage

  1. Install and configure Jest.
  2. Create new action inside .github/workflows:

Minimal configuration

name: 'coverage'
on:
    pull_request:
        branches:
            - master
            - main
jobs:
    coverage:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v1
            - uses: ArtiomTr/jest-coverage-report-action@v2
  1. Pay attention to the action parameters. You can specify custom threshold or test script
  2. That's it!

Custom token

By default, this action takes github.token variable to publish reports on your PR. You can overwrite this property by specifying:

with:
    github-token: ${{ secrets.SECRET_TOKEN }}

Specify threshold

This action automatically suports jest's coverageThreshold property. Just add into your jest.config.js file:

module.exports = {
    coverageThreshold: {
        global: {
            lines: 80,
        },
    },
};

Custom working directory

If you want to run this action in custom directory, specify working-directory:

with:
    working-directory: <dir>

Customizing test script

This action automatically adds necessary flags to your test script. The default script is:

npx jest

So you don't need to specify additional flags - action will handle them automatically. So, after adding necessary flags, action will run this command:

npx jest --ci --json --coverage --testLocationInResults --outputFile=report.json

But you do not need to specify these flags manually. Also, you can use different package manager, yarn for example:

with:
    test-script: yarn jest

Or, if you would like to run a script from your package.json:

with:
    test-script: npm test

Usage with yarn or pnpm

By default, this action will install your dependencies using npm. If you are using yarn or pnpm, you can specify it in the package-manager option:

with:
    package-manager: yarn

or

with:
    package-manager: pnpm

Use existing test report(s)

To bypass running unit tests, you can pass the filepath to the current report.json

with:
    coverage-file: ./coverage/report.json
    base-coverage-file: ./coverage/master/report.json
  • coverage-file is the filepath to the JSON coverage report for the current pull request.
  • base-coverage-file is the filepath to the JSON coverage report from the branch your pull request is merging into.

For example, you can save every test run to an artifact and then download and reference them here.

Opt-out coverage comparison features

You can opt-out coverage comparison features to speed-up action. To achieve this, firstly, manually collect coverage to report.json file. Then, specify these options for the action:

with:
    coverage-file: report.json
    base-coverage-file: report.json

Skipping steps

Note: this option affects only coverage for the "head" branch. For skipping steps of "base" branch, see base-coverage-file option.

By default, this action will install dependencies and run the tests for you, generating the coverage report. Alternatively, you can skip these steps using the skip-step option.

with:
    skip-step: all

Accepted values are:

  • none (default) - all steps will be run
  • install - skip installing dependencies
  • all - skip installing dependencies and running the test script

Change annotations

To change annotations, you have to set the annotations option as shown below:

with:
    annotations: none

Accepted values are:

  • all (default) - Will annotate sections of your code that failed tests or test did not cover
  • none - Turns off annotations
  • coverage - Will annotate those sections of your code that test did not cover
  • failed-tests - Will annotate those sections of your code that failed test

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Jest Coverage Report action is made with <3 thanks to these wonderful people (emoji key ✨):


Artiom Tretjakovas

πŸ’» πŸ“– πŸ‘€ 🚧 πŸ–‹

Guilherme Taschetto

πŸ’» πŸ“–

Adam Tuttle

πŸ’»

dadayama

πŸ’»

bluelovers

πŸ“–

gdelahodde-masteos

πŸ’» πŸ“–

jlim9333

πŸ’»

Jeremy Gillick

πŸ’» πŸ“–

Matej Zajo Kralik

πŸ’»

Sidharth Vinod

πŸ’»

Jaylen Wimbish

πŸ“–

princeIta

πŸ“–

Brian Whitton

πŸ’» πŸ›

Bohdan Petryshyn

πŸ’»

Herbert Treis Neto

πŸ’»

Thomas Patrick Levy

πŸ’»

Lauris Mikāls

πŸ’»

Rena Hamada

πŸ“–

JacobLinCool

πŸ’» πŸ“–

Tommaso Ferrari

πŸ’»

Florian

πŸ’»

License

MIT Β© Artiom Tretjakovas

About

Track your code coverage in every pull request.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.3%
  • Other 0.7%