Home

Awesome

<div align="center"> <img src="gocovsh.png"/> </div>

<div align="center">Gocovsh - Go Coverage in your terminal</div>

gocovsh is a tool for exploring Go Coverage reports from the command line.

Don't skip the Giving back section! πŸ’°

Demo below 🎬 πŸ‘‡

There is a Russian word Ковш (pronounced like "Kovsh") which means a ladle or a dipper. "The Big Dipper" is also a part of the constellation Ursa Major, thus the friendly dipper-shaped Gopher mascot, created by Michael Zolotov.

<div align="center"> Test Go Report Card codecov go-recipes

</div>

Installation

Using Homebrew

brew install orlangure/tap/gocovsh

Pre-built binary

Grab your pre-built binary from the Releases page.

From source

# install latest, probably unreleased version
go install github.com/orlangure/gocovsh@latest

# or install a specific version
go install github.com/orlangure/gocovsh@v0.5.1

Usage

  1. Generate Go coverage report at your project's root with

    go test -cover -coverprofile coverage.out
    

    For more information about generating Go coverage reports, see πŸ“ my blog post.

  2. Run gocovsh at the same folder with coverage.out report and go.mod file (go.mod is required).

    gocovsh                        # show all files from coverage report
    git diff --name-only | gocovsh # only show changed files
    git diff | gocovsh             # show coverage on top of current diff
    gocovsh --profile profile.out  # for other coverage profile names
    
  3. Use j/k/enter/esc keys to explore the report. See built-in help for more key-bindings.

Themes

gocovsh supports 4 nice themes (using Catppuccin Theme project) and an ugly default one at this moment. To change the theme, set GOCOVSH_THEME environment variable to one of the following values: mocha, latte, frappe or macchiato:

GOCOVSH_THEME=mocha gocovsh
GOCOVSH_THEME=latte gocovsh
GOCOVSH_THEME=frappe gocovsh
GOCOVSH_THEME=macchiato gocovsh

To always use the same theme, add export GOCOVSH_THEME=<theme name> to your ~/.bashrc, ~/.zshrc or any other file that you use for shell configuration.

Giving back

This is a free and open source project that hopefully helps its users, at least a little. Even though I don't need donations to support it, I understand that there are people that wish to give back anyway. If you are one of them, I encourage you to plant some trees with Tree Nation 🌲 🌳 🌴

If you want me to know about your contribution, make sure to use orlangure+gocovsh@gmail.com as the recipient email.

Thank you!

Demo

Viewing Go code coverage reports

go code coverage report viewer in the command line

Only show Go code coverage of changed files

go code coverage report of changed files in the command line

Go code coverage on top of git diff

go code coverage report on top of git diff in the command line