Codecov
Contents
Discover how to see test progress over time using Codecov.
Intro
Codecov is a nice reporting tool that can be used to visualize your test coverage over time and across multiple projects. It integrates nicely with GitHub and other CI/CD tools.
Command line
To get a test coverage report when running tests, simply add the --coverage option:
npx jest --coveragepackage.json
To get a coverage report every time you run npm test. Add the --coverage option in the package.json scripts section like this:
{
  "scripts": {
    "test": "jest --no-cache --coverage"
  }
}This also enables the npm test in the Github action below to produce a coverage report for Codecov.
GitHub action
Here is an example of how to set up a GitHub action to automatically send your test coverage to Codecov:
| Make sure the npm testcommand produces a coverage report. This is done by adding the--coverageoption to thejestcommand as described above | 
name: Coverage
on: [ push ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Set up Node
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'
          registry-url: 'https://registry.npmjs.org'
      - name: Install dependencies
        run: npm ci --ignore-scripts
      - name: Test
        run: npm test
      - uses: codecov/codecov-action@v4Summary
With the above setup, you will get a nice test coverage report every time you run npm test and also every time you push to GitHub. The report will be sent to Codecov where you can visualize it and track your progress over time.
The final chapter will demonstrate how to colocate tests with the source code.